A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

/*
* 验证码小程序,要求如下:
1.        随机生成4个A-Z(包含A和Z)的字符,将随机获取的4个字符拼接成字符串作为验证码
2.        键盘录入一个字符串,将字符串和验证码进行匹配(最多可以匹配3次),
如内容一致则在控制台打印输出"验证成功"并结束程序,如内容不一致且未达到最高的匹配次数,则继续输入字符串进行匹配,
如内容不一致且已达到最高的匹配次数,在控制台提示"你输入验证次数达到3次,
请明天再输入!",并将之前输入过的字符串全部打印输出,结束程序
思路分析:
    1.获取'A'和'Z'字符的对应的Ascii码值
    2.遍历 获取每个数字,并转化为字符, 健存数字,值存字符
    3.建立随机对象,拼接验证码
    3.判断是否匹配,如果匹配跳出循环
    4.最后打印集合中的每次输入的字符串
* */
public class 字符串验证 {
   public static void main(String[] args) {
        int k ='A';
        int z='Z';
        HashMap<Integer, Character> hm = new HashMap<>();
        int key=0;
        for (int i = k; i <=z; i++) {
                 char c =(char)i;
                // System.out.print(c+" ");
                 hm.put(key, c);
                 key++;
        }
        //随机生成4个A-Z(包含A和Z)的字符,将随机获取的4个字符拼接成字符串作为验证码
        key=0;
        String str="";
        Random r = new Random();
         while(key<4){
                int m = r.nextInt(27);
                str+=hm.get(m);
                key++;
         }
        System.out.println("随机生成的验证码:   "+str);
//2.        键盘录入一个字符串,将字符串和验证码进行匹配(最多可以匹配3次),       
         Scanner sc = new Scanner(System.in);
        System.out.println("请输入字符串进行匹配!!!");
         key=0;
         ArrayList<String> list = new ArrayList<>();
         while(key<=3){
                 if(key==3){
                         System.out.println("你输入验证次数达到3次,请明天再输入!");
                         break;
         }
                 String stt = sc.nextLine();
                 list.add(stt);
                 if(str.equals(stt)){
                         System.out.println("匹配成功");
                       
                         break;
                 }
                 System.out.println("第"+(key+1)+"次,匹配失败,请重新输入");
                 key++;
         }
        System.out.println("你输入的所有字符串!!!");
        for (String string : list) {
                System.out.print(string+" ");
        }
       
}
}
您需要登录后才可以回帖 登录 | 加入黑马