生成随机大写字母[基于int强转为char类型的机制(基于ASCII码)来做],随机生成A:65—Z:90之间的随机数
package com.itheima.question;
import java.util.Random;
public class Question2 {
public static void main(String[] args) {
System.out.println("生成5位随机验证码:"+creatCheckCode(5));
System.out.println("生成10位随机验证码:"+creatCheckCode(10));
System.out.println("生成4位随机验证码:"+creatCheckCode(4));
}
public static String creatCheckCode(int len){
String checkCode = "";
Random r = new Random();
for (int i = 0; i < len; i++) {
//明确本次循环要生成哪种随机字符,使用r对象生成0-2直接的随机数,其中,0代表生成随机数字,1代表生成随机大写字母,2代表生成随机小写字母
int category=r.nextInt(3);
switch (category){
case 0: //数字
checkCode+=r.nextInt(10);//字符串拼接
break;
case 1: //生成随机大写字母[基于int强转为char类型的机制(基于ASCII码)来做],随机生成A:65---Z:90之间的随机数
checkCode+=(char)(r.nextInt(26)+65);
break;
case 2: //生成随机小写字母:随机生成a:97---z:122之间的随机数,(n-m)范围的随机数用公式r.nextInt(上限-下限+1)+下限
checkCode+=(char)(r.nextInt(26)+97);
break;
}
}
return checkCode;
}
}