RandomStringUtils 工具类详解

一、添加pom依赖

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.9</version>
</dependency>

二、RandomStringUtils 工具类详解

package com.test.demo.util;

import org.apache.commons.lang3.RandomStringUtils;

/**
 * @ClassName RandomStringUtilsTest
 * @Description
 * @Author WangJing
 * @Date 2021/7/28 3:49 下午
 * @Version V1.1.0
 */
public class RandomStringUtilsTest {

    public static void main(String[] args) {

        /**
         * 从所有字符集中选择字符,产生5位长度的随机字符串,中文环境下是乱码
         */
        String random1 = RandomStringUtils.random(5);
        System.out.println("从所有字符集中选择字符,产生5位长度的随机字符串,中文环境下是乱码:");
        System.out.println("RandomStringUtils.random(5) 打印结果:" + random1);


        /**
         * count 长度
         * letters 生成的字符串是否包括字母字符
         * numbers 生成的字符串是否包含数字字符
         */
        String random2 = RandomStringUtils.random(10, true, false);
        System.out.println("\n\ncount 长度: 10");
        System.out.println("letters 生成的字符串是否包括字母字符: true");
        System.out.println("numbers 生成的字符串是否包含数字字符: false");
        System.out.println("结果: false");
        System.out.println("RandomStringUtils.random(10, true, false) 打印结果:" + random2);


        /**
         * 使用指定的字符生成5位长度的随机字符串,第二个参数如果NULL,则使用所有字符集
         */
        String random3 = RandomStringUtils.random(5, new char[]{'a', 'b', 'c', 'd', 'e', 'f', '1', '2', '3'});
        System.out.println("\n\n使用指定的字符生成5位长度的随机字符串,第二个参数如果NULL,则使用所有字符集");
        System.out.println("RandomStringUtils.random(5, new char[]{'a', 'b', 'c', 'd', 'e', 'f', '1', '2', '3'}) 打印结果:" + random3);


        /**
         * 生成指定长度的字母和数字组成的随机组合字符串
         */
        String random4 = RandomStringUtils.randomAlphanumeric(5);
        System.out.println("\n\n生成指定长度的字母和数字组成的随机组合字符串");
        System.out.println("RandomStringUtils.randomAlphanumeric(5) 打印结果:" + random4);


        /**
         * 创建一个随机字符串,其长度介于包含最小值和最大最大值之间,字符将从拉丁字母(a-z、A-Z)和数字0-9中选择。
         * minLengthInclusive :要生成的字符串的包含最小长度
         * maxLengthExclusive :要生成的字符串的包含最大长度
         */
        String random5 = RandomStringUtils.randomAlphanumeric(5, 68);
        System.out.println("\n\n创建一个随机字符串,其长度介于包含最小值和最大最大值之间,字符将从拉丁字母(a-z、A-Z)和数字0-9中选择。");
        System.out.println("minLengthInclusive :要生成的字符串的包含最小长度");
        System.out.println("maxLengthExclusive :要生成的字符串的包含最大长度");
        System.out.println("RandomStringUtils.randomAlphanumeric(5, 68) 打印结果:" + random5);


        /**
         * 生成随机数字字符串
         */
        String random6 = RandomStringUtils.randomNumeric(5);
        System.out.println("\n\n生成随机数字字符串");
        System.out.println("RandomStringUtils.randomNumeric(5) 打印结果:" + random6);

        /**
         * 创建一个随机字符串,其长度介于包含最小值和最大最大值之间,将从数字字符集中选择字符.
         * minLengthInclusive, 要生成的字符串的包含最小长度
         * maxLengthExclusive 要生成的字符串的包含最大长度
         */
        String random7 = RandomStringUtils.randomNumeric(15, 20);
        System.out.println("\n\n创建一个随机字符串,其长度介于包含最小值和最大最大值之间,将从数字字符集中选择字符.");
        System.out.println("minLengthInclusive, 要生成的字符串的包含最小长度");
        System.out.println("maxLengthExclusive 要生成的字符串的包含最大长度");
        System.out.println("RandomStringUtils.randomNumeric(15, 20) 打印结果:" + random7);


        /**
         * 生成随机[a-z,A-Z]字符串,包含大小写
         */
        String random8 = RandomStringUtils.randomAlphabetic(5);
        System.out.println("\n\n生成随机[a-z,A-Z]字符串,包含大小写");
        System.out.println("RandomStringUtils.randomAlphabetic(5) 打印结果:" + random8);


        /**
         * 创建一个随机字符串,其长度介于包含最小值和最大最大值之间,,字符将从拉丁字母(a-z、A-Z的选择)。
         * minLengthInclusive :要生成的字符串的最小长度
         * maxLengthExclusive :要生成的字符串的最大长度
         */
        String random9 = RandomStringUtils.randomAlphabetic(2, 15);
        System.out.println("\n\n创建一个随机字符串,其长度介于包含最小值和最大最大值之间,,字符将从拉丁字母(a-z、A-Z的选择)。");
        System.out.println("minLengthInclusive :要生成的字符串的最小长度");
        System.out.println("maxLengthExclusive :要生成的字符串的最大长度");
        System.out.println("RandomStringUtils.randomAlphabetic(2, 15) 打印结果:" + random9);


        /**
         * 生成ASCII值从32到126组成的随机字符串
         */
        String random10 = RandomStringUtils.randomAscii(4);
        System.out.println("\n\n生成ASCII值从32到126组成的随机字符串");
        System.out.println("RandomStringUtils.randomAscii(4) 打印结果:" + random10);


        /**
         * 创建一个随机字符串,其长度介于包含最小值和最大最大值之间,字符将从ASCII值介于32到126之间的字符集中选择(包括)
         * minLengthInclusive :要生成的字符串的包含最小长度
         * maxLengthExclusive :要生成的字符串的包含最大长度
         */
        String random11 = RandomStringUtils.randomAscii(15, 30);
        System.out.println("\n\n创建一个随机字符串,其长度介于包含最小值和最大最大值之间,字符将从ASCII值介于32到126之间的字符集中选择(包括)");
        System.out.println("minLengthInclusive :要生成的字符串的包含最小长度");
        System.out.println("maxLengthExclusive :要生成的字符串的包含最大长度");
        System.out.println("RandomStringUtils.randomAscii(15, 30) 打印结果:" + random11);
    }


}

三、执行效果

从所有字符集中选择字符,产生5位长度的随机字符串,中文环境下是乱码:
RandomStringUtils.random(5) 打印结果:⢍㭂𩱅覆


count 长度: 10
letters 生成的字符串是否包括字母字符: true
numbers 生成的字符串是否包含数字字符: false
结果: false
RandomStringUtils.random(10, true, false) 打印结果:qxfReyrXPe


使用指定的字符生成5位长度的随机字符串,第二个参数如果NULL,则使用所有字符集
RandomStringUtils.random(5, new char[]{'a', 'b', 'c', 'd', 'e', 'f', '1', '2', '3'}) 打印结果:ffbeb


生成指定长度的字母和数字组成的随机组合字符串
RandomStringUtils.randomAlphanumeric(5) 打印结果:5y9aO


创建一个随机字符串,其长度介于包含最小值和最大最大值之间,字符将从拉丁字母(a-z、A-Z)和数字0-9中选择。
minLengthInclusive :要生成的字符串的包含最小长度
maxLengthExclusive :要生成的字符串的包含最大长度
RandomStringUtils.randomAlphanumeric(5, 68) 打印结果:qFgvMP3k9vyprpEkt25hv3tEI9TjKMQYvQpCTwAFLImaVou1xfF4sxLfUCD


生成随机数字字符串
RandomStringUtils.randomNumeric(5) 打印结果:19249


创建一个随机字符串,其长度介于包含最小值和最大最大值之间,将从数字字符集中选择字符.
minLengthInclusive, 要生成的字符串的包含最小长度
maxLengthExclusive 要生成的字符串的包含最大长度
RandomStringUtils.randomNumeric(15, 20) 打印结果:084346835576185029


生成随机[a-z,A-Z]字符串,包含大小写
RandomStringUtils.randomAlphabetic(5) 打印结果:Srofb


创建一个随机字符串,其长度介于包含最小值和最大最大值之间,,字符将从拉丁字母(a-z、A-Z的选择)。
minLengthInclusive :要生成的字符串的最小长度
maxLengthExclusive :要生成的字符串的最大长度
RandomStringUtils.randomAlphabetic(2, 15) 打印结果:jKFJ


生成ASCII值从32到126组成的随机字符串
RandomStringUtils.randomAscii(4) 打印结果:=Xe[


创建一个随机字符串,其长度介于包含最小值和最大最大值之间,字符将从ASCII值介于32到126之间的字符集中选择(包括)
minLengthInclusive :要生成的字符串的包含最小长度
maxLengthExclusive :要生成的字符串的包含最大长度
RandomStringUtils.randomAscii(15, 30) 打印结果:vv]\=.}wA@8O?!6[b|]u0k&;V8Qy?

Process finished with exit code 0

注:以上内容仅提供参考和交流,请勿用于商业用途,如有侵权联系本人删除! 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JAVA·D·WangJing

您的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值