需求:
定义方法实现随机产生一个5位的验证码,每位可能是数字、大写字母、小写字母。
分析:
定义一个方法,生成验证码返回:方法的返回值类型是String。
在方法内部使用for循环生成指定位数的随机字符,并连接起来。
把连接好的随机字符作为一组验证码进行返回。
思路 :
1 创建一个数组 , 字符数组 , 长度为62
2 采用随机数 , 从数组中随机选出5个元素拼接成字符串返回
package com.itheima.test;
import java.util.Random;
public class Test3 {
public static void main(String[] args) {
// 1 创建长度为62的数组 , 里面存储0-9 a-z A-Z
char[] chs = new char[62];
// 记录的是存储元素的索引
int index = 0;// 10
// 把'0'-'9'之间的数据存储到数组的前十个位置
for (char ch = '0'; ch <= '9'; ch++) {
chs[index] = ch;
index++;
}
// 把'a'-'z'之间的数据存储到数组的第11-36位置
for (char ch = 'a'; ch <= 'z'; ch++) {
chs[index] = ch;
index++;
}
// 把'A'-'Z'之间的数据存储到数组的第37-62位置
for (char ch = 'A'; ch <= 'Z'; ch++) {
chs[index] = ch;
index++;
}
// 遍历数组
printArr(chs);
String randomString = getRandomString(chs);
System.out.println("长度为5的随机验证码为:" + randomString);
}
/*
方法的功能 : 接收一个字符数组 , 返回一个长度为5的字符串(随机)
两个明确
1 返回值类型 : String
2 参数列表 : char[] chs
*/
public static String getRandomString(char[] chs) {
String s = "";// 记录的是长度为5的随机字符串
// 创建随机数对象
Random r = new Random();
// 使用循环从数组中取出五个元素 , 累加到s上
for (int i = 1; i <= 5; i++) {
int index = r.nextInt(chs.length);
s += chs[index];
}
return s;
}
// 遍历数组 , 把元素打印在控制台
public static void printArr(char[] chs) {
System.out.print("[");
for (int i = 0; i < chs.length; i++) {
if (i == chs.length - 1) {
System.out.println(chs[i] + "]");
} else {
System.out.print(chs[i] + ", ");
}
}
}
}