第一种解法:
import java.util.Random;
/**
* 生成一个长度为5随机字符串,字符串可以有大写字母,小写字母或数字组成
*/
public class Test02 {
public static void main(String[] args) {
//定义一个StringBuilder用于存储所需要生成的字符集
StringBuilder stringBuilder = new StringBuilder();
//定义一个用于存储随机字符的容器
StringBuilder randomStr = new StringBuilder();
//创建Random对象
Random r = new Random();
//将大写,小写和数字放在StringBuilder里
for (char c = 'A'; c <= 'Z'; c++) {
stringBuilder.append(c);
}
for (char c = 'a'; c <= 'z'; c++) {
stringBuilder.append(c);
}
for (char c = '0'; c <= '9'; c++) {
stringBuilder.append(c);
}
for (int i = 0; i < 5; i++) {
//因为字符集的总长度为62,所以需要生成0-62之间的索引值
int index = r.nextInt(62);
char ranChar = stringBuilder.charAt(index);
randomStr.append(ranChar);
}
System.out.println(randomStr);
}
}
运行结果:
RWeTx
第二种方法:
import java.util.Random;
/**
* 生成一个长度为5随机字符串,字符串可以有大写字母,小写字母或数字组成
*/
public class Test03 {
public static void main(String[] args) {
//用字符串容器存储随机字符串
StringBuilder stringBuilder = new StringBuilder();
//创建Random对象
Random r = new Random();
//因为是5个字符的字符串,循环5次
for (int i = 0; i < 5; i++) {
//每次随机出0,1,2之间的任意一个数字
int num = r.nextInt(3);
switch (num) {
//如果随机为0,则添加随机大写字母
case 0:
char lowerChar = (char)(r.nextInt(26) + 65);
stringBuilder.append(lowerChar);
break;
//如果随机为1,则添加随机小写字母
case 1:
char upperChar = (char)(r.nextInt(26) + 97);
stringBuilder.append(upperChar);
break;
//如果随机为2,则添加随机数字字符
case 2:
char numChar = (char)(r.nextInt(10) + 48);
stringBuilder.append(numChar);
break;
}
}
//输出结果
System.out.println(stringBuilder);
}
}
运行结果:
9UO2w