/*
* 验证码小程序,要求如下:
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+" ");
}
}
}
|
|