java编程思维训练
案例 验证码
需求
定义一个方法实现随机产生一个5位验证码,
每位可能是数字、大写字母、小写字母。
public class Test3 {
public static void main(String[] args) {
//1.定义一个方法返回一个随机验证码:需要返回值类型申明String,需要形参;
String code = creatCode(5);
System.out.println("随机验证码为" + code);
}
public static String creatCode(int n) {
//2.定义一个for循环,循环n次一次生成一个随机字符
String code = "";
Random r = new Random();
for (int i = 0; i < n; i++) {
//3.生成一个随机字符,英文大写、小写、数字
int type = r.nextInt(3);//0 1 2;
switch (type) {
case 0:
//大写字符(A 65-Z 65+25)
char ch = (char) (r.nextInt(26) + 65);
code += ch;
break;
case 1:
//小写字符(a 97-z 65+25)
char ch1 = (char) (r.nextInt(26) + 97);
code += ch1;
break;
case 2:
code += r.nextInt(10);
break;
}
}
return code;
}
}
public class StringExec8 {
public static void main(String[] args) {
//定义可能出现的字符信息
String data = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
//2.循环5次每次生成一个随机的索引,提取对应的字符连接起来即可
String code = "";
for (int i = 0; i < 5; i++) {
Random r =new Random();
//随机一个索引
int index = r.nextInt(data.length());
char c = data.charAt(index);
code += c;
}
//3.输出字符串变量即可
System.out.println(code);
}
}
总结
- 定义了一个String code = “”;这时用code = code + 1将会显示1;但是不可以让code = 1 + 2;这会报错因为一边是int,一边是String;但是可以code=1+2+code;结果为3,+号作用能加就加,不能加就起连接作用,而且这时两边都是String。
- 第二种方法利用String这个对象里的方法直接生成随机字符,更加简单。