生成验证码 内容:可以是小写字母,也可以是大写字母,还可以是数字 规则: 长度为5 内容有四位字母,一位数字 其中数字只有一位,但是出现在任意位置
import java.util.Random;
import java.util.Scanner;
public class 生成验证码 {
public static void main(String[] args) {
//把字母放一个数组中
char[] arr = new char[52];
//存入大写字母
for (char c = 'A'; c <= 'Z'; c++) {
arr[c - 'A'] = c;
}
//存入小写字母
for (char c = 'a'; c <= 'z'; c++) {
arr[c - 'a' + 26] = c;
}
while (true) {
System.out.println("验证码为");
Random r = new Random();
String str = "";
StringBuilder sb = new StringBuilder(str);
for (int i = 0; i < 4; i++) {
sb.append(arr[r.nextInt(52)]);
}
//最后一位加上数字
sb.append(r.nextInt(10));
String str1 = sb.toString();
//把字符串变成字符数组
char[] arr1 = str1.toCharArray();
//打乱字符串
char temp;
for (int i = 0; i < arr1.length; i++) {
int num1 = r.nextInt(arr1.length);
int num2 = r.nextInt(arr1.length);
temp = arr1[num1];
arr1[num1] = arr1[num2];
arr1[num2] = temp;
}
//将打乱后的字符数组转变回字符串
String strNew = String.valueOf(arr1);
System.out.println(strNew);
Scanner sc = new Scanner(System.in);
String userStr = sc.next();
if (strNew.equals(userStr)) {
System.out.println("输入正确");
break;
} else System.out.println("输入错误");
}
}
}
运行结果: