/**
* 随机生成字符串工具类
*
* @author zlx
* @date 2021/08/30 15:33
**/
public class RandomStrUtil {
/**
* 随机产生类型枚举
*/
public enum TYPE {
/**
* 小字符型
*/
LETTER,
/**
* 大写字符型
*/
CAPITAL,
/**
* 数字型
*/
NUMBER,
/**
* 大+小字符 型
*/
LETTER_CAPITAL,
/**
* 小字符+数字 型
*/
LETTER_NUMBER,
/**
* 大写字符+数字
*/
CAPITAL_NUMBER,
/**
* 大+小字符+数字 型
*/
LETTER_CAPITAL_NUMBER,
}
private static final 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 static final 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 static final String[] NUMBER = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "0"};
/**
* 静态随机数
*/
private static final SecureRandom RANDOM = new SecureRandom();
/**
* 获取随机组合码
*
* @param num 位数
* @param type 类型
*/
public static String getRandom(int num, TYPE type) {
ArrayList<String> temp = new ArrayList<String>();
StringBuilder code = new StringBuilder();
switch (type) {
case LETTER:
temp.addAll(Arrays.asList(LOWERCASE));
break;
case CAPITAL:
temp.addAll(Arrays.asList(CAPITAL));
break;
case NUMBER:
temp.addAll(Arrays.asList(NUMBER));
break;
case LETTER_CAPITAL:
temp.addAll(Arrays.asList(LOWERCASE));
temp.addAll(Arrays.asList(CAPITAL));
break;
case LETTER_NUMBER:
temp.addAll(Arrays.asList(LOWERCASE));
temp.addAll(Arrays.asList(NUMBER));
break;
case CAPITAL_NUMBER:
temp.addAll(Arrays.asList(CAPITAL));
temp.addAll(Arrays.asList(NUMBER));
break;
case LETTER_CAPITAL_NUMBER:
temp.addAll(Arrays.asList(LOWERCASE));
temp.addAll(Arrays.asList(CAPITAL));
temp.addAll(Arrays.asList(NUMBER));
break;
default:
}
for (int i = 0; i < num; i++) {
code.append(temp.get(RANDOM.nextInt(temp.size())));
}
return code.toString();
}
//测试
public static void main(String[] args) {
System.out.println(RandomStrUtil.getRandom(64, RandomStrUtil.TYPE.LETTER_CAPITAL_NUMBER));
}
}
6.随机生成字符串工具类
最新推荐文章于 2024-07-08 18:09:16 发布