隨機數工具類,隨機生成數字、字母、數字字母組合、中文姓名
package cn.com.prac.util; import java.util.Random; /** * 隨機數工具類(隨機生成數字、字母、數字字母組合、中文姓名) */ public class RandomCodeUtil { /** 姓 */ public static String[] firsname = { "趙", "錢", "孫", "李", "周", "吳", "鄭", "王", "馮", "陳", "楮", "衛", "蔣", "沈", "韓", "楊", "朱", "秦", "尤", "許", "何", "呂", "施", "張", "孔", "曹", "嚴", "華", "金", "魏", "陶", "姜", "戚", "謝", "鄒", "喻", "柏", "水", "竇", "章", "雲", "蘇", "潘", "葛", "奚", "范", "彭", "郎", "魯", "韋", "昌", "馬", "苗", "鳳", "花", "方", "俞", "任", "袁", "柳", "酆", "鮑", "史", "唐", "費", "廉", "岑", "薛", "雷", "賀", "倪", "湯", "滕", "殷", "羅", "畢", "郝", "鄔", "安", "常", "樂", "於", "時", "傅", "皮", "卞", "齊", "康", "伍", "余", "元", "卜", "顧", "孟", "平", "黃", "和", "穆", "蕭", "尹", "姚", "邵", "湛", "汪", "祁", "毛", "禹", "狄", "米", "貝", "明", "臧", "計", "伏", "成", "戴", "談", "宋", "茅", "龐", "熊", "紀", "舒", "屈", "項", "祝", "董", "梁", "杜", "阮", "藍", "閩", "席", "季", "麻", "強", "賈", "路", "婁", "危", "江", "童", "顏", "郭", "梅", "盛", "林", "刁", "鍾", "徐", "丘", "駱", "高", "夏", "蔡", "田", "樊", "胡", "凌", "霍", "虞", "萬", "支", "柯", "昝", "管", "盧", "莫", "經", "房", "裘", "繆", "干", "解", "應", "宗", "丁", "宣", "賁", "鄧", "郁", "單", "杭", "洪", "包", "諸", "左", "石", "崔", "吉", "鈕", "龔", "程", "嵇", "邢", "滑", "裴", "陸", "榮", "翁", "荀", "羊", "於", "惠", "甄", "麹", "家", "封", "芮", "羿", "儲", "靳", "汲", "邴", "糜", "松", "井", "段", "富", "巫", "烏", "焦", "巴", "弓", "牧", "隗", "山", "谷", "車", "侯", "宓", "蓬", "全", "郗", "班", "仰", "秋", "仲", "伊", "宮", "寧", "仇", "欒", "暴", "甘", "斜", "厲", "戎", "祖", "武", "符", "劉", "景", "詹", "束", "龍", "葉", "幸", "司", "韶", "郜", "黎", "薊", "薄", "印", "宿", "白", "懷", "蒲", "邰", "從", "鄂", "索", "咸", "籍", "賴", "卓", "藺", "屠", "蒙", "池", "喬", "陰", "郁", "胥", "能", "蒼", "雙", "聞", "莘", "黨", "翟", "譚", "貢", "勞", "逄", "姬", "申", "扶", "堵", "冉", "宰", "酈", "雍", "郤", "璩", "桑", "桂", "濮", "牛", "壽", "通", "邊", "扈", "燕", "冀", "郟", "浦", "尚", "農", "溫", "別", "庄", "晏", "柴", "瞿", "閻", "充", "慕", "連", "茹", "習", "宦", "艾", "魚", "容", "向", "古", "易", "慎", "戈", "廖", "庾", "終", "暨", "居", "衡", "步", "都", "耿", "滿", "弘", "匡", "國", "文", "寇", "廣", "祿", "闕", "東", "歐", "殳", "沃", "利", "蔚", "越", "夔", "隆", "師", "鞏", "厙", "聶", "晁", "勾", "敖", "融", "冷", "訾", "辛", "闞", "那", "簡", "饒", "空", "曾", "毋", "沙", "乜", "養", "鞠", "須", "豐", "巢", "關", "蒯", "相", "查", "后", "荊", "紅", "游", "竺", "權", "逑", "蓋", "益", "桓", "公", "萬俟", "司馬", "上官", "歐陽", "夏侯", "諸葛", "聞人", "東方", "赫連", "皇甫", "尉遲", "公羊", "澹台", "公冶", "宗政", "濮陽", "淳於", "單於", "太叔", "申屠", "公孫", "仲孫", "軒轅", "令狐", "鍾離", "宇文", "長孫", "慕容", "鮮於", "閭丘", "司徒", "司空", "丌官", "司寇", "仉", "督", "子車", "顓孫", "端木", "巫馬", "公西", "漆雕", "樂正", "壤駟", "公良", "拓拔", "夾谷", "宰父", "谷梁", "晉", "楚", "閻", "法", "汝", "鄢", "塗", "欽", "段干", "百里", "東郭", "南門", "呼延", "歸", "海", "羊舌", "微生", "岳", "帥", "緱", "亢", "況", "后", "有", "琴", "梁丘", "左丘", "東門", "西門", "商", "牟", "佘", "佴", "伯", "賞", "南宮", "墨", "哈", "譙", "笪", "年", "愛", "陽", "佟" }; /** 女生ming */ private static String girls="秀娟英華慧巧美娜靜淑惠珠翠雅芝玉萍紅娥玲芬芳燕彩春菊蘭鳳潔梅琳素雲蓮真環雪榮愛妹霞香月鶯媛艷瑞凡佳嘉瓊勤珍貞莉桂娣葉璧璐婭琦晶妍茜秋珊莎錦黛青倩婷姣婉嫻瑾穎露瑤怡嬋雁蓓紈儀荷丹蓉眉君琴蕊薇菁夢嵐苑婕馨瑗琰韻融園藝詠卿聰瀾純毓悅昭冰爽琬茗羽希寧欣飄育瀅馥筠柔竹靄凝曉歡霄楓芸菲寒伊亞宜可姬舒影荔枝思麗 "; /** 男生名 */ private static String boys="偉剛勇毅俊峰強軍平保東文輝力明永健世廣志義興良海山仁波寧貴福生龍元全國勝學祥才發武新利清飛彬富順信子傑濤昌成康星光天達安岩中茂進林有堅和彪博誠先敬震振壯會思群豪心邦承樂紹功松善厚慶磊民友裕河哲江超浩亮政謙亨奇固之輪翰朗伯宏言若鳴朋斌梁棟維啟克倫翔旭鵬澤晨辰士以建家致樹炎德行時泰盛雄琛鈞冠策騰楠榕風航弘"; /** * 根據性別生成2-5位的隨機名字 * @param sex 性別 0:女生,1:男生 * @return */ public static String getRandomChinese(String sex){ //隨機獲取姓 int a = (int) Math.abs(firsname.length * Math.random()); //產生1-3的隨機數 int random = new Random().nextInt(3)+1 ; int i = 0 ; String lastName = "" ;//名 if("0".equals(sex.trim())){ int girlLen = girls.length() ; for(;i<random;i++){ int k = (int) Math.abs(girlLen * Math.random()); lastName += girls.substring(k,k+1) ; } }else{ int boyLen = boys.length() ; for(;i<random;i++){ int k = (int) Math.abs(boyLen * Math.random()); lastName += boys.substring(k,k+1) ; } } return firsname[a]+lastName ; } /** * 生成指定長度的數字隨機數 * @param length 長度 * @return String */ public static String getRandNumberCode (int length) { Random random = new Random(); String result=""; for(int i=0;i<length;i++){ result+=random.nextInt(10); } return result; } /** * 生成指定長度的數字隨機數,不能以0開頭 * @param length 長度 * @return String */ public static String getRandNumber (int length) { //第一位隨機數 String temp = "123456789"; int len = temp.length(); int p; Random r = new Random(); StringBuilder sb = new StringBuilder(); p = r.nextInt(len); sb.append(temp.substring(p, p + 1)); //除第一位以外其他隨機數 for(int i=0;i<length-1;i++){ sb.append(r.nextInt(10)); } return sb.toString(); } /** * 生成相應長度的數字字母組合的隨機數 * @param size 長度 * @return String */ public static String getRandStrCode(int size) { String temp = "ABCDEFGHJKLMNPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz"; int length = temp.length(); int p; Random r = new Random(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < size; i++) { p = r.nextInt(length); sb.append(temp.substring(p, p + 1)); } return sb.toString(); } /** * 生成指定長度的字母隨機數 * @param size 長度 * @return 字符串 */ public static String getRandEnglishCode(int size) { String temp = "ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; int length = temp.length(); int p; Random r = new Random(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < size; i++) { p = r.nextInt(length); sb.append(temp.substring(p, p + 1)); } return sb.toString(); } }