随机字符串生成器 |
无 jar 依赖
实现代码 :
/**
* @author LXH-404
* @Classname RandomUtil
* @Description 随机生成器
*/
public class RandomUtil {
//大写字母字符池
private final static String[] CAPITAL = {"A", "B", "C", "D", "E",
"F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R",
"S", "T", "U", "V", "W", "X", "Y", "Z"};
//小写字母字符池
private final static String[] LOWERCASE = {"a", "b", "c", "d", "e",
"f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r",
"s", "t", "u", "v", "w", "x", "y", "z"};
//数字字符池
private final static String[] NUMBER = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "0"};
/**
* 随机生成指定位数 小写字母、大写字母和数字混合字符串
*
* @param length 指定位数
* @return
*/
public static String generateString(int length) {
//参数校验
if (length < 0) {
return "-1";
}
StringBuilder sb = new StringBuilder();
Random num = new Random();
for (int i = 0; i < length; i++) {
switch (generateNumber(1, 3)) {
case 1:
sb.append(CAPITAL[num.nextInt(CAPITAL.length)]);
break;
case 2:
sb.append(LOWERCASE[num.nextInt(LOWERCASE.length)]);
break;
case 3:
sb.append(NUMBER[num.nextInt(NUMBER.length)]);
break;
}
}
return sb.toString();
}
/**
* 指定位数,以及指定成分组成的随机字符串生成
*
* @param length 位数
* @param strPool 字符池
* @return
*/
public static String generateString(int length, String[]... strPool) {
StringBuilder sb = new StringBuilder();
Random num = new Random();
for (int i = 0; i < length; i++) {
// strPool随机选择
int index = num.nextInt(strPool.length);
// strPool字符随机选择
sb.append(strPool[index][num.nextInt(strPool[index].length)]);
}
return sb.toString();
}
/**
* 随机生成指定范围随机数
* 提醒: (适用范围 min 大于0)
*
* @param min 最小值
* @param max 最大值
* @return
*/
public static int generateNumber(int min, int max) {
Random random = new Random();
int num = random.nextInt(max) % (max - min + 1) + min;
return num;
}
}