項目中有用到,先記錄一下
import java.util.Random; public class RandomValueUtil { private static String ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; private static String ALPHABET_NUMBER = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; private static String FIRST_NAME="趙錢孫李周吳鄭王馮陳褚衛蔣沈韓楊朱秦尤許何呂施張孔曹嚴華金魏陶姜戚謝鄒喻柏水竇章雲蘇潘葛奚范彭郎魯韋昌馬苗鳳花方俞任袁柳酆鮑史唐費廉岑薛雷賀倪湯滕殷羅畢郝鄔安常樂於時傅皮卞齊康伍余元卜顧孟平黃和穆蕭尹姚邵湛汪祁毛禹狄米貝明臧計伏成戴談宋茅龐熊紀舒屈項祝董梁杜阮藍閔席季麻強賈路婁危江童顏郭梅盛林刁鍾徐邱駱高夏蔡田樊胡凌霍虞萬支柯咎管盧莫經房裘繆干解應宗宣丁賁鄧郁單杭洪包諸左石崔吉鈕龔程嵇邢滑裴陸榮翁荀羊於惠甄魏加封芮羿儲靳汲邴糜松井段富巫烏焦巴弓牧隗山谷車侯宓蓬全郗班仰秋仲伊宮寧仇欒暴甘鈄厲戎祖武符劉姜詹束龍葉幸司韶郜黎薊薄印宿白懷蒲台從鄂索咸籍賴卓藺屠蒙池喬陰郁胥能蒼雙聞莘黨翟譚貢勞逄姬申扶堵冉宰酈雍卻璩桑桂濮牛壽通邊扈燕冀郟浦尚農溫別庄晏柴瞿閻充慕連茹習宦艾魚容向古易慎戈廖庚終暨居衡步都耿滿弘匡國文寇廣祿闕東毆殳沃利蔚越夔隆師鞏厙聶晁勾敖融冷訾辛闞那簡饒空曾毋沙乜養鞠須豐巢關蒯相查后江紅游竺權逯蓋益桓公萬俟司馬上官歐陽夏侯諸葛聞人東方赫連皇甫尉遲公羊澹台公冶宗政濮陽淳於仲孫太叔申屠公孫樂正軒轅令狐鍾離閭丘長孫慕容鮮於宇文司徒司空亓官司寇仉督子車顓孫端木巫馬公西漆雕樂正壤駟公良拓拔夾谷宰父谷粱晉楚閻法汝鄢塗欽段干百里東郭南門呼延歸海羊舌微生岳帥緱亢況后有琴梁丘左丘東門西門商牟佘佴伯賞南宮墨哈譙笪年愛陽佟"; private static String GIRL="秀娟英華慧巧美娜靜淑惠珠翠雅芝玉萍紅娥玲芬芳燕彩春菊蘭鳳潔梅琳素雲蓮真環雪榮愛妹霞香月鶯媛艷瑞凡佳嘉瓊勤珍貞莉桂娣葉璧璐婭琦晶妍茜秋珊莎錦黛青倩婷姣婉嫻瑾穎露瑤怡嬋雁蓓紈儀荷丹蓉眉君琴蕊薇菁夢嵐苑婕馨瑗琰韻融園藝詠卿聰瀾純毓悅昭冰爽琬茗羽希寧欣飄育瀅馥筠柔竹靄凝曉歡霄楓芸菲寒伊亞宜可姬舒影荔枝思麗 "; private static String BOY="偉剛勇毅俊峰強軍平保東文輝力明永健世廣志義興良海山仁波寧貴福生龍元全國勝學祥才發武新利清飛彬富順信子傑濤昌成康星光天達安岩中茂進林有堅和彪博誠先敬震振壯會思群豪心邦承樂紹功松善厚慶磊民友裕河哲江超浩亮政謙亨奇固之輪翰朗伯宏言若鳴朋斌梁棟維啟克倫翔旭鵬澤晨辰士以建家致樹炎德行時泰盛雄琛鈞冠策騰楠榕風航弘"; private static String[] EMAIL_SUFFIX="@gmail.com,@yahoo.com,@msn.com,@hotmail.com,@aol.com,@ask.com,@live.com,@qq.com,@0355.net,@163.com,@163.net,@263.net,@3721.net,@yeah.net,@googlemail.com,@126.com,@sina.com,@sohu.com,@yahoo.com.cn".split(","); private static String[] TEL_FIRST = ("133,153,177,180,181,189,134,135,136,137,138,139,150,151,152,157,158,159" + "178,182,183,184,187,188,130,131,132,155,156,176,185,186" + "145,147,170").split(","); static Random random = new Random(); /** * 得到從start到end之間的隨機數 * @param start 隨機數區間最大值 * @param end 隨機數區間最小值 * @return */ public static int getNum(int start,int end) { return (int)(Math.random()*(end-start+1)+start); } /** * 獲取區間段內的隨機年齡 * @param start * @param end * @return */ public static int getRandomAge(int start,int end){ return getNum(start,end); } /** * 獲取隨機的英文字母組合,大小寫隨機 * @param num 組合中需要的英文字母個數 * @return */ public String getRandomAlphabet(Integer num){ String randomAlphabet = ""; char[] c = ALPHABET.toCharArray(); for( int i = 0; i < num; i ++) { randomAlphabet += c[random.nextInt(c.length)]; } return randomAlphabet; } /** * 獲得隨機姓名 * @return */ public static String getRandomName(){ char firstName = FIRST_NAME.toCharArray()[random.nextInt(FIRST_NAME.toCharArray().length)]; String lastName; int sex = random.nextInt(2); if (sex == 0){ lastName = getGirlName(); }else { lastName = getBOYlName(); } String randomName = firstName + lastName; return randomName; } private static String getGirlName(){ String lastName = ""; int num = getNum(1,2);//隨機獲取2字姓名和3字姓名 if (num == 1){ lastName = String.valueOf(GIRL.charAt(random.nextInt(GIRL.toCharArray().length))); }else if (num == 2){ for (int i = 0; i < 2; i++){ lastName += GIRL.charAt(random.nextInt(GIRL.toCharArray().length)); } } return lastName; } private static String getBOYlName(){ String lastName = ""; int num = getNum(1,2);//隨機獲取2字姓名和3字姓名 if (num == 1){ lastName = String.valueOf(BOY.charAt(random.nextInt(BOY.toCharArray().length))); }else if (num == 2){ for (int i = 0; i < 2; i++){ lastName += BOY.charAt(random.nextInt(BOY.toCharArray().length)); } } return lastName; } /** * 獲取隨機的手機號碼 * @return */ public static String getRandomPhoneNumber(){ //獲取隨機的號碼開頭 String firstNum = TEL_FIRST[random.nextInt(TEL_FIRST.length)]; //獲取剩余8位的號碼隨機數 String remainingNum = String.valueOf(getNum(0,99999999)+100000000).substring(1); String phoneNumber= firstNum + remainingNum; if (phoneNumber.length()!=11){ return phoneNumber.substring(0,11); }else { return phoneNumber; } } /** * 獲取隨機的email,前綴后綴分別獲取后組合成隨機email * @param num 自定義前綴的位數 * @return */ public String getRandomEmail(Integer num){ //獲取隨機的email前綴,自定義前綴長度 String firstPart = ""; char[] c = ALPHABET_NUMBER.toCharArray(); for (int i = 0; i < num; i++){ firstPart += c[random.nextInt(c.length)]; } //獲取隨機email后綴 String secondPart = EMAIL_SUFFIX[random.nextInt(EMAIL_SUFFIX.length)]; return firstPart + secondPart; } /** * 根據不同年份區間和月份,獲得隨機日期,以特定格式返回 * @return */ public static String getRandomBirthDate(){ //先隨機獲取年份,取1915-1971區間 String year = String.valueOf(getNum(1915,1971)); //再隨機獲取月份 String month = String.valueOf(getNum(1,12) + 100).substring(1); String day; //判斷月份,獲取隨機日期 if (month.equals("02")){ day = String.valueOf(getNum(1,28) + 100).substring(1); }else if (month.equals("04") || month.equals("06") || month.equals("09") || month.equals("11")){ day = String.valueOf(getNum(1,30) + 100).substring(1); }else { day = String.valueOf(getNum(1,31) + 100).substring(1); } String BirthDate = year + "-" + month + "-" + day; return BirthDate; } public static String qq() { int num =7; String[] vec = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }; num = num <= 0 ? 1 : num; StringBuffer str = new StringBuffer(10); for (int i = 0; i < num; i++) { int r1 = Long.valueOf(Math.round(Math.random() * (vec.length - 1))).intValue(); str.append(vec[r1]); } return str.toString(); } }