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 }