在 Java 開發中,生成隨機字符串是常見需求,例如生成驗證碼、臨時密碼、唯一標識符等。本文提供一個功能完整、靈活可配置的隨機字符生成工具類 PassWord,支援多種字符類型組合,並通過枚舉類型實現清晰的參數控制。
工具類定義了 TYPE 枚舉,涵蓋 8 種常用字符組合模式:
LETTER:小寫字母CAPITAL:大寫字母NUMBER:數字SIGN:特殊符號LETTER_CAPITAL:大小寫字母混合LETTER_NUMBER:小寫字母+數字LETTER_CAPITAL_NUMBER:大小寫字母+數字LETTER_CAPITAL_NUMBER_SIGN:全字符集(大小寫字母+數字+符號)類中預先定義四個基礎字符數組:
private static String[] lowercase = {"a","b",...,"z"};
private static String[] capital = {"A","B",...,"Z"};
private static String[] number = {"1","2",...,"0"};
private static String[] sign = {"~","!","@",...,"/"};
靜態方法根據指定長度 num 和類型 type 生成隨機字符串:
ArrayList 字符池Random 實例從字符池隨機抽取字符StringBuffer 高效拼接結果public static void main(String[] args) {
// 生成 24 位大寫字母隨機字符串
System.out.println(PassWord.getRandom(24, PassWord.TYPE.CAPITAL));
}
適用場景: 密碼生成、驗證碼、Token 生成、測試數據構造等。
優化方向:
ThreadLocalRandom 替代 Random 提升多線程性能SecureRandom包含包聲明、導入、枚舉定義、字符池、隨機實例及核心邏輯,可直接複製到項目中使用(包路徑請根據項目結構調整)。