在业务开发过程中经常遇到生成随机字符串,用于密钥、密码、口令或其他标识使用。
下面就介绍一下通过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随机字符串生成器,可用于生成随机密码,加密算法密约(AES,RSA等)等场景,支持可选字符范围配置(如只允许数字,只允许字母,只允许数字字母,特殊字符等混合配置),即在选择的字符范围内去实现随机字符串...
主要为大家详细介绍了Java生成含字母和数字的6位随机字符串的相关资料,供大家参考,感兴趣的朋友可以参考一下
随机生成10位随机排列 的字符串,包含字母和数字的随机排列
随机生成8位字符密码,包括1位特殊字符,1位数字,1位小写字母,1位大写字母,其余4位随机
工具类-随机生成纯数字 纯字母 以及 数字字母混合字符串工具类,自用留存
java生成16位随机数
java开发技术调用rendom函数,随机生成32位不重复的字符
为方便生成随机字符串的小工具。可生成纯数字、纯字母、纯特殊符号及三种类型的任意组合而成的任意长度字符串。可用来产生密码等。
在开发过程中,会遇到生成XX编号之类的数据,而且这编号不能重复,所以根据当前时间,生成8位不重复的数.
主要介绍了JAVA 16位ID生成工具类含16位不重复的随机数数字+大小写,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
第一种: ...function makeid() { var text = ""; var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; for( var i=0;... text += possible.charAt(Math.floor(Math.random() * ...
生成随机字符串 参数passLength:要生成多少长度的字符串 param type:需要哪种... // type=7:固定长度33位:根据UUID拿到的随机字符串,去掉了四个"-"(相当于长度33位的小写字母加数字) return :根据传入的类型而定
生成随机不重复的数字编号在某些情况下也会用到,本文以生成8位随机不重复的数字编号为例与大家分享下具体的实现过程,感兴趣的朋友可以参考下
每一部分都是一个十六进制的数字,注意并不是随机的任意字母+数字的字符串。 M 表示 UUID 的版本,N 为 UUID 的变体(Variants)。 M 的值有 5 个可选项: 版本 1:UUID 是根据时间和 MAC 地址生成的; 版本 2:UUID...
ArrayString.java 字符串数组 assignTwoDime.java 为二维数组赋值 getMaxElem.java 获取数组中的最大元素 incCapicity.java 演示StingBuffer的容量增长 SortDemo.java 排序示例 travelTwoDime.java 遍历二维...
日常开发中我们会遇到使用字符串ID,最先行到的就是UUID生成我们的随机字符串,但是UUID也是会出现重复的几率的!所以我们引入的新的ULID ULID的特性 与UUID的128位兼容性 每毫秒1.21e + 24个唯一ULID 按字典顺序...
输入一个不少于六位的密码,并判断强弱。如果密码为纯数字,则为弱密码;如果密码含有数字及字母则为中等强度;如果有数字、字母和其他字符则为高强度密码 如果密码小于六位,则为不合格密码,要重新输入
Java根据不同字符 随机长度不等的字符串,大小字母,数字...,
java笔试题重复字符串句子生成器 使用马尔可夫链生成简单的英文文本。 用Java实现。 面向 APCS 高中学生。 计算机科学的一个有趣领域是自然语言处理:编写像 Siri 这样的软件来识别和理解人类的语音,或者生成新的...
1. 编写一个程序,输出一个字符串中的大写英文字母数,小写英文字母数以及非英文字母数。(字符串可以在main方法中指定) 2. 调用java.lang.Math的成员函数“public static double random()”运算下面表达式1000次,...