指定位數的純數字、純字母的隨機字串生成工具
阿新 • • 發佈:2019-02-13
這個工具類需要依賴common-lang3,可以實現指定位數的純數字、純字母的隨機字串生成,還可以自定義種子,根據您自定義的種子生成需要的隨機字串,原始碼如下:
import org.apache.commons.lang3.RandomUtils; /** * 隨機數工具類 * @author vic_miao * 2018-7-24 21:00:50 */ public final class RandomUtil { private final static String KEYSTR = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; private final static String KEYNUM = "0123456789"; private final static int KEYLENGTH = 6; /** * 獲取指定位數的隨機數(整數) * @param num * @return */ public static String getRandomNum(int num){ String random = getRandom(KEYNUM, num); return random; } /** * 獲取指定位數的隨機數(字串) * @param num * @return */ public static String getRandomString(int num){ String random = getRandom(KEYSTR, num); return random; } /** * 根據傳入的種子獲取隨機字串 * @param key 種子(預設為字母+數字混合) * @return */ public static String getRandom(String key){ if(StringUtils.isEmpty(key)){ key = KEYSTR; } String random = getRandom(key,KEYLENGTH); return random; } /** * 根據傳入的種子獲取指定長度的隨機字串 * @param key 種子(預設為字母+數字混合) * @param length 長度 * @return */ public static String getRandom(String key,int length){ if(StringUtils.isEmpty(key)){ key = KEYSTR + KEYNUM; } StringBuilder sb = new StringBuilder(); for (int i=0;i<length;i++){ int ran = RandomUtils.nextInt(0,key.length()); sb.append(String.valueOf(ran)); } return sb.toString(); } }