Java代码如何生成随机字符串呢?

乔欣 Java经验 发布时间:2023-02-03 14:30:55 阅读数:224 1
下文笔者讲述使用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("-", "");
    }
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202302/16754059035634.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者