package com.gblfy.util;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;
/**
* 字符隨機生成類
*/
@Component
public class RandomStrUtil {
/**
* 隨機產生類型枚舉
*/
public static enum TYPE {
/**
* 小字符型
*/
LETTER,
/**
* 大寫字符型
*/
CAPITAL,
/**
* 數字型
*/
NUMBER,
/**
* 大+小字符 型
*/
LETTER_CAPITAL,
/**
* 小字符+數字 型
*/
LETTER_NUMBER,
/**
* 大寫字符+數字
*/
CAPITAL_NUMBER,
/**
* 大+小字符+數字 型
*/
LETTER_CAPITAL_NUMBER,
}
private 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 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 static String[] number = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "0"};
/**
* 靜態隨機數
*/
private static Random random = new Random();
/**
* 獲取隨機組合碼
*
* @param num 位數
* @param type 類型
* @type <br>小寫字符型 LETTER,
* <br>大寫字符型 CAPITAL,
* <br>數字型 NUMBER,
* <br>大+小字符型 LETTER_CAPITAL,
* <br>小字符+數字 型 LETTER_NUMBER,
* <br>大字符+數字 型 CAPITAL_NUMBER,
* <br>大+小字符+數字 型 LETTER_CAPITAL_NUMBER,
*/
public static String getRandom(int num, TYPE type) {
ArrayList<String> temp = new ArrayList<String>();
StringBuffer code = new StringBuffer();
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;
}
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));
}
}
字符串隨機生成工具類
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.