一种简单地生成随机验证码的方法:
public class RandomUtils {
private static ThreadLocalRandom getRandom() {
return ThreadLocalRandom.current();
}
/**
* 获得一个[0,max)之间的随机整数。
* @param max 最大值(不包括)
* @return 一个[0,max)之间的随机整数
*/
public static int getRandomInt(int max) {
return getRandom().nextInt(max);
}
/**
* 生成一个含有n位随机数字的字符串,用于验证码等
* @param n 位数
* @return 含有n位数字的一个String
*/
public static String getRandNumberStr(int n) {
StringBuilder s = new StringBuilder(n);
for (int i = 0; i < n; i++) {
s.append(getRandomInt(10)); //随机获取一个0~9之间的数
}
return s.toString();
}
public static void main(String[] args) throws Exception {
System.out.println(getRandNumberStr(6));
System.out.println(getRandNumberStr(5));
System.out.println(getRandNumberStr(4));
System.out.println(getRandNumberStr(10));
}
}
测试结果:
124388
32557
4675
7343852352