生成验证码
内容:可以是小写字母,也可以是大写字母,还可以是数字
规则:长度为5
内容中四位字母,一位数字
其中数字只有一位,但是可以出现在任意位置。
package test;
import java.util.Random;
public class Test4 {
public static void main(String[] args) {
/*
类似于生成验证码
内容:可以是小写字母,也可以是大写字母,还可以是数字
规则:长度为5
内容中四位字母,一位数字
其中数字只有一位,但是可以出现在任意位置。
*/
String yzm = test();
System.out.println("随机验证码: " + yzm);
}
public static String test() {
//1.可以把所有的大小写字母都放在一个数组中
char[] arr = new char[52];
//a-z A-Z
int index = 0;
for (char c = 'A'; c <= 'Z'; c++) {
arr[index++] = c;
}
for (char c = 'a'; c <= 'z'; c++) {
arr[index++] = c;
}
//2.在数组中随机获取4次
Random random = new Random();
StringBuilder yzm = new StringBuilder();
for (int i = 0; i < 4; i++) {
yzm.append(arr[random.nextInt(52)]);
}
//3.生成一个0~9之间的随机数拼接到最后
String num = "0123456789";
//把生成的验证码变成一个字符数组
//再让最后一个元素跟前面的随机位置的元素进行交换
//交换完毕之后再变成字符串
yzm.append(num.charAt(random.nextInt(num.length())));
char[] yzmArray = yzm.toString().toCharArray();
char temp = yzmArray[4];
int randomIndex = random.nextInt(4);
yzmArray[4] = yzmArray[randomIndex];
yzmArray[randomIndex] = temp;
return new String(yzmArray);
}
}
运行结果