import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
/**
*
* 验证码小程序,要求如下:
* 1. 随机生成4个A-Z(包含A和Z)的字符,将随机获取的4个字符拼接成字符串作为验证码
* 2.键盘录入一个字符串,将字符串和验证码进行匹配(最多可以匹配3次),如内容一致则在控制台打印输出"验证成功"并结束程序,如内容不一致且未达到最高的匹配次数,
* 则继续输入字符串进行匹配,如内容不一致且已达到最高的匹配次数,在控制台提示"你输入验证次数达到3次,请明天再输入!",并将之前输入过的字符串全部打印输出,
* 结束程序
*/
public class Prictice1 {
// 定义常量,用来存储次数
static int temp = 0;
public static void main(String[] args) {
Random r = new Random();
// 创建一个字符数组,用来存随机生成的验证码
char[] ch_arr = new char[4];
for(int i = 0 ; i < 4; i++) {
int zimu = 65 + r.nextInt(26);
char c = (char)zimu;
ch_arr[i] = c;
}
// 将字符数组 转变为 字符串
String str = new String(ch_arr);
System.out.println("验证码是:"+ str);
// 创建Scanner对象
Scanner sc = new Scanner(System.in);
String user_in = sc.next();
checkNum(user_in, str, sc);
}
// 验证用户输入的字符串 与 验证码 是否匹配
private static void checkNum(String user_in, String str, Scanner sc) {
// 创建一个集合,用来存历史记录
ArrayList<String> list = new ArrayList<>();
while(temp <= 2) {
if(user_in.equals(str)) {
System.out.println("验证成功!");
break;
} else if (temp == 2) {
list.add(user_in);
System.out.println("你输入验证次数达到3次,请明天再输入!");
System.out.print("您曾输入的字符串"+list);
break;
} else {
temp++;
list.add(user_in);
System.out.println("请继续输入:"+"您还有"+(3-temp)+"次");
// 覆盖,上一次用户输入的内容
user_in = sc.next();
}
}
}
}
|
|