隨機產生任意位的字母數字組合
阿新 • • 發佈:2019-02-05
使用java.util.Random產生隨機字串,字串中必須包括字母(大寫或者小寫)和數字的組合,使用正則表示式進行驗證。
實現原始碼:
/** * 產生字母和數字的隨機組合,長度為length * @param length * @return 一個字母和數字隨機組合的String型資料 */ public static String getRandomNumAndChacters(int length){ Random random = new Random(); String str = null; do { str = new String(); for (int i = 0; i < length; i++) { boolean b = random.nextBoolean(); if(b){ int choice = random.nextBoolean() ? 65 : 97;//隨機到65:大寫字母 97:小寫字母 str += (char)(choice+random.nextInt(26)); }else{ str += String.valueOf(random.nextInt(10)); } } } while (validate(str));//驗證是否為字母和數字的組合 return str; } /** * 驗證產生的隨機字母數字組合是否是純數字或者存字母 * @param str * @return true:純字母或者純數字組成;false:不是純字母或者純數字組成 */ public static boolean validate(String str){ Pattern pattern = Pattern.compile("^([0-9]+)|([A-Za-z]+)$"); Matcher matcher = pattern.matcher(str); return matcher.matches(); }