Java中生成隨機數,字符串的工具類
1. 調用方法需要傳入生成字符串的長度和需要的類型
生成隨機數字
生成隨機字母字符串
生成隨機字符串+數字等
.........
2. 總共8種類型,具體看工具類中的注釋。
1 import java.util.Date; 2 import java.util.Random; 3 import java.util.UUID; 4 5 /** 6 * @Name RandomStringUtil 7 * @Descr 生成隨機字符串 8 * @author lnexin@aliyun.com 9 * @date 2015年10月15日下午2:36:05 10 */ 11 public class RandomStringUtil { 12 /** 13 * @param passLength 14 * : 要生成多少長度的字符串 15 * @param type 16 * : 需要哪種類型 17 * @return 根據傳入的type來判定 18 */ 19 20 // 可以根據自己需求來刪減下面的代碼,不要要的類型可以刪掉 21 22 // type=0:純數字(0-9) 23 // type=1:全小寫字母(a-z) 24 // type=2:全大寫字母(A-Z) 25 // type=3: 數字+小寫字母 26 // type=4: 數字+大寫字母 27 // type=5:大寫字母+小寫字母 28 // type=6:數字+大寫字母+小寫字母 29 // type=7:固定長度33位:根據UUID拿到的隨機字符串,去掉了四個"-"(相當於長度33位的小寫字母加數字) 30 31 public static String getRandomCode(int passLength, int type) { 32 StringBuffer buffer = null; 33 StringBuffer sb = new StringBuffer(); 34 Random r = new Random(); 35 r.setSeed(new Date().getTime()); 36 switch (type) { 37 case 0: 38 buffer = new StringBuffer("0123456789"); 39 break; 40 case 1: 41 buffer = new StringBuffer("abcdefghijklmnopqrstuvwxyz"); 42 break; 43 case 2: 44 buffer = new StringBuffer("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 45 break; 46 case 3: 47 buffer = new StringBuffer("0123456789abcdefghijklmnopqrstuvwxyz"); 48 break; 49 case 4: 50 buffer = new StringBuffer("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 51 break; 52 case 5: 53 buffer = new StringBuffer("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"); 54 break; 55 case 6: 56 buffer = new StringBuffer("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"); 57 sb.append(buffer.charAt(r.nextInt(buffer.length() - 10))); 58 passLength -= 1; 59 break; 60 case 7: 61 String s = UUID.randomUUID().toString(); 62 sb.append(s.substring(0, 8) + s.substring(9, 13) + s.substring(14, 18) + s.substring(19, 23) + s.substring(24)); 63 } 64 65 if (type != 7) { 66 int range = buffer.length(); 67 for (int i = 0; i < passLength; ++i) { 68 sb.append(buffer.charAt(r.nextInt(range))); 69 } 70 } 71 return sb.toString(); 72 } 73 }
