生成验证码
内容:可以是小写字母,也可以是大写字母,还可以是数字
规则:长度为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-Zint 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);}}
运行结果