可以是小写字母,也可以是大写字母,还可以是数字,其中数字只有1位,但是可以出现在任意的位置
package com.hzs.demo;
import java.util.Random;
public class Test {
public static void main(String[] args) {
//1.随机生成一个0-9数字验证码给到字符数组随机位
char[] arr = new char[5]; //验证码字符数组
Random rd = new Random();
char num = (char) (rd.nextInt(10) + 48); //随机数字num
int index = rd.nextInt(5); //随机位index
arr[index] = num;
//2.随机生成字母赋值给剩余验证码数组位
for (int i = 0; i < arr.length; i++) {
if(i!=index){
arr[i]=newCh();
}
}
//3.根据字符数组生成字符串
String str=new String(arr);
System.out.println(str);
}
//随机生成字母
public static char newCh() {
Random rd = new Random();
char ch;
int UpperOrLower = rd.nextInt(2); //0表示小写,1表示大写
if (UpperOrLower == 0) {
ch = (char) (rd.nextInt(26) + 65); //大写
} else {
ch = (char) (rd.nextInt(26) + 97); //小写
}
return ch;
}
}