需求:
定义一个方法实现随机产生一个任意位数的验证码,每位可能是数字,大写英文字母,小写英文字母.
分析:
① 定义一个方法,生成验证码返回:方法参数是位数,方法的返回值类型时String
② 在方法内使用for循环生成指定位数的随机字符并连接起来
③ 把连接好的随机字符作为一组验证码进行返回
代码展示:
import java.util.Random;
public static void main(String[] args){
//调用获取验证码的方法得到一个随机的验证码
String code = createCode(n: 5);//选择验证码位数位五位
System.out.println("随机验证码是: " + code);
}
public static String createCode(int n){//n是验证码的位数
String code = "";//定义一个字符串变量记录生成的随机字符
Random sc = r.Random();
for(int i = 0, i < n, i++){//定义一个for循环,循环n次,依次生成随机字符,几位验证码就循环几次
int type = r.nextInt(bound:3);//大写字母:0,小写字母:1,数字:2
switch (type){
case "0":
//大写字母(A 65 - Z 65+25) (0-25)+65
char ch = (char)(r.nextInt(bound:26) + 65);
code += ch;//将任意出来的大写字母连上String
break;
case "0":
//小写字母(a 97 - z 97+25) (0-25) + 97
char ch1 = (char)(r.nextInt(bound:26) + 97);
code += ch1;//将任意出来的小写字母放进String与前面的字符连上
break;
case "0":
//数字字符
code += r.nextInt(bound: 10);//0-9
break;
}
}
return code;//返回code
}
运行截图: