package TestDemo;
import java.util.Random;
/**
* 定义一个方法生成一个随机5位数的验证码,验证码包括大写字母、小写字母、数字
*/
public class Demo3 {
public static void main(String[] args) {
//调用方法
String code = createCode(5);
System.out.println("您的验证码位:" + code);
}
//1定义一个方法是否需要返回值?String 是否需要参数? int n
public static String createCode(int n){
//需要定义一个字符串来接随机字符
String code = "";
Random rs = new Random();
//2定义一个for循环来生成n个字符
for (int i = 0; i < n ; i++) {
//3生成一个随机字符大写小写数字 0 1 2
int type = rs.nextInt(3);
switch (type){
case 0: //代表大写字母(A 65 Z65+25)
char ch = (char)( rs.nextInt(26) + 65);
code += ch;
break;
case 1: //代表小写字母 a97 z97+25
char ch1 = (char)( rs.nextInt(26) + 97);
code += ch1;
break;
case 2: //代表数字
int a = rs.nextInt(10);
code += a;
break;
}
}
return code;
}
}
需求:
⚫
定义方法实现随机产生一个
5
位的验证码,每位可能是数字、大写字母、小写字母。
分析:
① 定义一个方法,生成验证码返回:方法参数是位数、方法的返回值类型是
String
。
② 在方法内部使用
for
循环生成指定位数的随机字符,并连接起来。
③ 把连接好的随机字符作为一组验证码进行返回。
随机验证码的核心实现逻辑是如何进行的?
① 定义一个String类型的变量存储验证码字符。
② 定义一个for循环,循环5次。
③ 随机生成0|1|2的数据,依次代表当前位置要生成数字|大写字母|小写字母。
④ 把0、1、2交给switch生成对应类型的随机字符,把字符交给String变量。
⑤ 循环结束后,返回String类型的变量即是所求的验证码结果。