Java代码如何生成随机字符串呢?
下文笔者讲述使用java代码生成随机字符串的方法分享,如下所示
实现思路:
方式1:
使用random生成随机数字,然后借助字符数组生成随机字符
方式2:
使用Apache Commons Lang中RandomStringUtils生成随机字符
方式3:
使用UUID生成随机字符
例:
生成长度为8的随机字母数字字符串[a-ZA-Z0-9]
package com.java265;
import java.security.SecureRandom;
public class RandomExample {
private static final String CHAR_LOWER = "abcdefghijklmnopqrstuvwxyz";
private static final String CHAR_UPPER = CHAR_LOWER.toUpperCase();
private static final String NUMBER = "0123456789";
private static final String DATA_FOR_RANDOM_STRING = CHAR_LOWER + CHAR_UPPER + NUMBER;
private static SecureRandom random = new SecureRandom();
public static void main(String[] args) {
System.out.println("String : " + DATA_FOR_RANDOM_STRING);
for (int i = 0; i < 5; i++) {
System.out.println("result : " + generateRandomString(8));
System.out.println("\n");
}
}
public static String generateRandomString(int length) {
if (length < 1) throw new IllegalArgumentException();
StringBuilder sb = new StringBuilder(length);
for (int i = 0; i < length; i++) {
// 0-62 (exclusive), random returns 0-61
int rndCharAt = random.nextInt(DATA_FOR_RANDOM_STRING.length());
char rndChar = DATA_FOR_RANDOM_STRING.charAt(rndCharAt);
// debug
System.out.format("%d\t:\t%c%n", rndCharAt, rndChar);
sb.append(rndChar);
}
return sb.toString();
}
}
Apache Commons Lang
引入依赖
pom.xml
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>
//生成随机字符
package com.java265;
import org.apache.commons.lang3.RandomStringUtils;
public class CommonLangExample {
public static void main(String[] args) {
System.out.println("\n[0-9]");
for (int i = 0; i < 5; i++) {
System.out.println(RandomStringUtils.randomNumeric(10));
}
System.out.println("\n[a-zA-Z]");
for (int i = 0; i < 5; i++) {
System.out.println(RandomStringUtils.randomAlphabetic(10));
}
System.out.println("\n[a-zA-Z0-9]");
for (int i = 0; i < 5; i++) {
System.out.println(RandomStringUtils.randomAlphanumeric(10));
}
}
}
使用UUID生成
UUID简介
生成由32个字母数字字符(十六进制)和4个连字符组成的随机字符串
package com.java265;
import java.util.UUID;
public class UUIDExample {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println(generateRandomStringByUUIDNoDash());
}
for (int i = 0; i < 10; i++) {
System.out.println(generateRandomStringByUUIDNoDash());
}
}
public static String generateRandomStringByUUID() {
return UUID.randomUUID().toString();
}
public static String generateRandomStringByUUIDNoDash() {
return UUID.randomUUID().toString().replace("-", "");
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


