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

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

随机生成一个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())
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 vue3加ant-design-vue无法渲染出页面
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 路易威登官网 里边的参数逆向
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程
  • ¥20 模型在y分布之外的数据上预测能力不好如何解决
  • ¥15 processing提取音乐节奏
  • ¥15 gg加速器加速游戏时,提示不是x86架构
  • ¥15 python按要求编写程序