Java生成字母和数字组成的随机字符串
2015-08-10 00:27
686 查看
在业务开发过程中经常遇到生成随机字符串,用于密钥、密码、口令或其他标识使用。
下面就介绍一下通过Java程序生成这些随机字符串的方法。
1. 随机生成n位由字母或数字组成的字符串
public static String getRandomCharacterAndNumber(int length) { String val = ""; Random random = new Random(); for (int i = 0; i < length; i++) { String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num"; // 输出字母还是数字 if ("char".equalsIgnoreCase(charOrNum)) // 字符串 { int choice = random.nextInt(2) % 2 == 0 ? 65 : 97; // 取得大写字母还是小写字母 val += (char) (choice + random.nextInt(26)); // int choice = 97; // 指定字符串为小写字母 val += (char) (choice + random.nextInt(26)); } else if ("num".equalsIgnoreCase(charOrNum)) // 数字 { val += String.valueOf(random.nextInt(10)); } } return val; }
2. 结果校验
public static boolean isRandomUsable(String str) { String regExp = "^[0-9a-zA-Z]{6}$"; Pattern pat = Pattern.compile(regExp); Matcher mat = pat.matcher(str); return mat.matches(); }
3. 测试代码
public static void main(String[] args) { for (int i = 0; i < 20; i++) { String str = getRandomCharacterAndNumber(6); System.out.println(str); System.out.println(isRandomUsable(str)); } }
相关文章推荐
- JAVA生成n位随机字符串,数字+英文字母+标点符号
- java 随机生成字符串 (字母和数字)
- 使用java Random动态传递位数 生成指定位数的随机字符串-数字字母混合
- JAVA生成8位随机字符串,数字+英文字母
- Java随机生成长度不少于6的指定长度的密码,且这个字符串必须包含大小写字母、数字和特殊字符,四种的任意三种
- 生成由数字大小写字母组成的随机字符串
- Java生成含字母和数字的6位随机字符串
- java/jsp 生成随机字符串(生成一个32位字节的字母和数字大小写混合的随机字符串!)
- Java指定长度随机生成的字符串,且这个字符串必须包含大小写字母和数字
- Java指定长度随机生成的字符串,且这个字符串必须包含大小写字母和数字
- Java随机密码生成器,Java随机生成长度不少于6的指定长度的密码,且这个字符串必须包含大小写字母、数字和特殊字符,四种的任意三种
- ASP生成随机字符串(数字+大小写字母)的代码
- 生成不重复随机字符串包括字母数字
- java 生成随机数字或者字母
- 【Java】利用Math.Random()方法随机出四个字符的字符串,字符包括数字,大小写英文字母
- java随机生成数字字母验证码
- Java 随机生成六位数验证码过程(含大小写字母及数字)
- Java 随机生成验证码,支持大小写字母、数字;随机字体
- Java基础之随机生成数字和字母
- Java随机产生数字字母字符串