【commons-lang3专题】003- RandomStringUtils 专题

本文详细介绍了Apache Commons Lang3库中的RandomStringUtils工具类,包括如何生成不同类型的随机字符串,如指定长度的字母、数字、ASCII码字符串等,并通过实例展示了其使用方法,是理解与应用随机字符串生成的实用指南。
摘要由CSDN通过智能技术生成

【commons-lang3专题】003- RandomStringUtils 专题

〇、准备

1、RandomStringUtils 主要作用

提供生成各种随机字符串方法。

2、引入依赖

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version>
</dependency>

一、随机字符串

1、生成指定长度的随机字符串(字母数字外的所有字符集)

// 1、生成指定长度的随机字符串(字母数字外的所有字符集)
// 从所有字符集中选择字符,不含字母和数字
System.out.println(RandomStringUtils.random(5)); // 𥘿𦊿途

2、生成指定长度的随机字符串(指定字符集)

// 2、生成指定长度的随机字符串(指定字符集)
// 语法:random(int count, boolean letters, boolean numbers)
// letters: 字母字符集 numbers:数字字符集
// 随机字符串由字母和数字组成
System.out.println(RandomStringUtils.random(5, true, true)); // ny6Oh
// 随机字符串由字母组成
System.out.println(RandomStringUtils.random(5, true, false)); // edrYz
// 随机字符串由数字组成
System.out.println(RandomStringUtils.random(5, false, true)); // edrYz
// 随机字符串由字母数字外的所有字符集组成(等同于random(int count))
System.out.println(RandomStringUtils.random(5, false, false)); // ᷉줅𝥛뚣

3、从指定字符集数组中生成指定长度的随机字符串

// 3、从指定字符集数组中生成指定长度的随机字符串
System.out.println(RandomStringUtils.random(5, 'A', 'B', '1', '2')); // 2B21B

4、从指定的字符集中生成指定长度的字符串

// 4、从指定的字符集中生成指定长度的字符串
System.out.println(RandomStringUtils.random(5, "bkjfsdhjkkj32h54386tweuyfb345")); // 3u4e4

二、随机字母字符串

5、生成指定长度的随机字母字符串

// 5、生成指定长度的随机字母字符串
// 相当于 random(count, true, false)
System.out.println(RandomStringUtils.randomAlphabetic(5)); // yaalN

6、生成介于两个长度之间的随机字母字符串

// 6、生成介于两个长度之间的随机字母字符串
System.out.println(RandomStringUtils.randomAlphabetic(5, 10)); // uuIpdckTS

三、随机数字字符串

7、生成指定长度的随机数字字符串

// 13、生成指定长度的随机数字字符串
System.out.println(RandomStringUtils.randomNumeric(5)); // 56789

8、生成介于两个长度之间的随机数字字符串

// 14、生成介于两个长度之间的随机数字字符串
System.out.println(RandomStringUtils.randomNumeric(8, 16)); // 81179252

四、随机字母或数字字符串

9、生成指定长度的随机字母或数字字符串

// 7、生成指定长度的随机字母或数字字符串
// 相当于 random(count, true, true)
System.out.println(RandomStringUtils.randomAlphanumeric(5)); // n91KB

10、生成介于两个长度之间的随机字母或数字字符串

// 8、生成介于两个长度之间的随机字母或数字字符串
System.out.println(RandomStringUtils.randomAlphanumeric(5, 10)); // vs5cw8Q

五、随机 ASCII 码字符串

11、生成指定长度的随机 ASCII 码字符串

// 9、生成指定长度的随机 ASCII 码字符串
// ASCII 码值介于 [32,126] 之间,相当于 random(count, 32, 127, false, false)
System.out.println(RandomStringUtils.randomAscii(5)); // 7*>/#

12、生成介于两个长度之间的随机 ASCII 码字符串

// 10、生成介于两个长度之间的随机 ASCII 码字符串
System.out.println(RandomStringUtils.randomAscii(8, 16)); // ;TD/+kHB2n$Dg

13、生成指定长度的可见的随机 ASCII 码字符串

// 11、生成指定长度的可见的随机 ASCII 码字符串
// 即除空格和控制字符外的任何内容,相当于 random(count, 33, 126, false, false)
System.out.println(RandomStringUtils.randomGraph(5)); // ")N$R

14、生成介于两个长度之间的可见的随机 ASCII 码字符串

// 12、生成介于两个长度之间的可见的随机 ASCII 码字符串
System.out.println(RandomStringUtils.randomGraph(8, 16)); // *?'u{iDDN=#{b&T

六、随机字符串-正则匹配集

15、生成指定长度的随机字符串(从正则表达式字符类匹配的字符集)

// 15、生成指定长度的随机字符串(从正则表达式字符类匹配的字符集)
// 从正则表达式字符类匹配的字符集中选择字符,不含空格和控制字符
System.out.println(RandomStringUtils.randomPrint(5)); // L*bh1

16、生成介于两个长度之间的随机字符串(从正则表达式字符类匹配的字符集)

// 16、生成介于两个长度之间的随机字符串(从正则表达式字符类匹配的字符集)
// 从正则表达式字符类匹配的字符集中选择字符,不含空格和控制字符
System.out.println(RandomStringUtils.randomPrint(8, 16)); // 4D-.4V\ZH

七、完整代码

package com.zibo.zibo2022.random_string_utils.main;

import org.apache.commons.lang3.RandomStringUtils;

public class Main {

    public static void main(String[] args) {
        // start
        // 1、生成指定长度的随机字符串(字母数字外的所有字符集)
        // 从所有字符集中选择字符,不含字母和数字
        System.out.println(RandomStringUtils.random(5)); // 𥘿𦊿途

        // 2、生成指定长度的随机字符串(指定字符集)
        // 语法:random(int count, boolean letters, boolean numbers)
        // letters: 字母字符集 numbers:数字字符集
        // 随机字符串由字母和数字组成
        System.out.println(RandomStringUtils.random(5, true, true)); // ny6Oh
        // 随机字符串由字母组成
        System.out.println(RandomStringUtils.random(5, true, false)); // edrYz
        // 随机字符串由数字组成
        System.out.println(RandomStringUtils.random(5, false, true)); // edrYz
        // 随机字符串由字母数字外的所有字符集组成(等同于random(int count))
        System.out.println(RandomStringUtils.random(5, false, false)); // ᷉줅𝥛뚣

        // 3、从指定字符集数组中生成指定长度的随机字符串
        System.out.println(RandomStringUtils.random(5, 'A', 'B', '1', '2')); // 2B21B

        // 4、从指定的字符集中生成指定长度的字符串
        System.out.println(RandomStringUtils.random(5, "bkjfsdhjkkj32h54386tweuyfb345")); // 3u4e4

        // 5、生成指定长度的随机字母字符串
        // 相当于 random(count, true, false)
        System.out.println(RandomStringUtils.randomAlphabetic(5)); // yaalN

        // 6、生成介于两个长度之间的随机字母字符串
        System.out.println(RandomStringUtils.randomAlphabetic(5, 10)); // uuIpdckTS

        // 7、生成指定长度的随机字母或数字字符串
        // 相当于 random(count, true, true)
        System.out.println(RandomStringUtils.randomAlphanumeric(5)); // n91KB

        // 8、生成介于两个长度之间的随机字母或数字字符串
        System.out.println(RandomStringUtils.randomAlphanumeric(5, 10)); // vs5cw8Q

        // 9、生成指定长度的随机 ASCII 码字符串
        // ASCII 码值介于 [32,126] 之间,相当于 random(count, 32, 127, false, false)
        System.out.println(RandomStringUtils.randomAscii(5)); // 7*>/#

        // 10、生成介于两个长度之间的随机 ASCII 码字符串
        System.out.println(RandomStringUtils.randomAscii(8, 16)); // ;TD/+kHB2n$Dg

        // 11、生成指定长度的可见的随机 ASCII 码字符串
        // 即除空格和控制字符外的任何内容,相当于 random(count, 33, 126, false, false)
        System.out.println(RandomStringUtils.randomGraph(5)); // ")N$R

        // 12、生成介于两个长度之间的可见的随机 ASCII 码字符串
        System.out.println(RandomStringUtils.randomGraph(8, 16)); // *?'u{iDDN=#{b&T

        // 13、生成指定长度的随机数字字符串
        System.out.println(RandomStringUtils.randomNumeric(5)); // 56789

        // 14、生成介于两个长度之间的随机数字字符串
        System.out.println(RandomStringUtils.randomNumeric(8, 16)); // 81179252

        // 15、生成指定长度的随机字符串(从正则表达式字符类匹配的字符集)
        // 从正则表达式字符类匹配的字符集中选择字符,不含空格和控制字符
        System.out.println(RandomStringUtils.randomPrint(5)); // L*bh1

        // 16、生成介于两个长度之间的随机字符串(从正则表达式字符类匹配的字符集)
        // 从正则表达式字符类匹配的字符集中选择字符,不含空格和控制字符
        System.out.println(RandomStringUtils.randomPrint(8, 16)); // 4D-.4V\ZH
        // end
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值