最近由于编写项目的注册功能,需要一个能够生成带大写英文字母的验证码工具类,就写了一个
public class RandomUtil {
//生成size长度的验证码,hasLetter决定是否带大写英文字母
public static String getRandom(int size,boolean hasLetter) {
String num = "";
Random random = new Random();
//生成字母
if (hasLetter) {
for (int i = 0; i < size; i++) {
//利用奇偶数决定下一个是数字还是字母
int isLetter = random.nextInt(10) % 2;
//偶数生成英文字母
if (isLetter == 0) {
//大写字母的ascii码是65到90
num = num + (char) (random.nextInt(26) + 65);
} else {
//数字的ascii码是48到57
num = num + (char) (random.nextInt(10) + 48);
}
}
}
//不生成字母
else{
for (int i = 0; i < size; i++) {
num = num + (char) (random.nextInt(10) + 48);
}
}
//检查生成的验证码的长度
if (num.length() != size) {
return null;
} else {
return num;
}
}
}
···