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("-", ""); } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。