91wangdawang 2017-07-22 09:21 采纳率: 28.6%
浏览 1846
已采纳

验证码小程序运行的结果始终是说验证码错误

随机生成一个5位的英文字母验证码(大小写混搭)

  • 然后将该验证码输出给用户,然后要求用户输入该验证码,大小写不限制。
  • 然后判定用户输入的验证码是否有效(无论用户输入大小写,只要字母都正确即可)。

package day01;
import java.util.Scanner;
import java.util.Random;
public class Test05 {
public static void main(String[] args) {
String zm="abcdefghijklmnopqrstuvwxyz";
String ZM=zm.toUpperCase();
String allzm=zm+ZM+"$";
allzm.length();
Random random=new Random();
StringBuilder builder = new StringBuilder("验证码为");
for(int i=0;i<5;i++){
int recindex=random.nextInt(52);
String str=allzm.substring(recindex,recindex+1);
builder.append(str);
}
String STR= builder.toString();
System.out.println(STR);
Scanner scan=new Scanner(System.in);
System.out.println("请输入验证码:");
String input=scan.nextLine();
if(STR.toUpperCase()==(input.toUpperCase())){
System.out.println("您输入的验证码正确");
}else{
System.out.println("您输入的验证码错误");
}

}
}

  • 写回答

1条回答 默认 最新

  • 呆的久 2017-07-22 12:50
    关注

    java比较string不是这么玩的,你直接==比较的是地址,不是内容。比较要用equals

     STR.toUpperCase()==(input.toUpperCase())
     改成
     STR.toUpperCase().equals(input.toUpperCase())
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?