最近项目中需要用到随机数,网上搜了一下,发现 RandomStringUtils 这个工具类非常的不错。而这个类呢?就在我们的最常用的 Apache Commons Lang (org.apache.commons.lang3.RandomStringUtils)包中,这真是熟悉而又陌生的知识。本文总结一下它的详细用法!
RandomStringUtils工具类大概一共有十几个方法,但是常用的大概也就四五个。
//产生5位长度的随机字符串,中文环境下是乱码
RandomStringUtils.random(
5
);
//使用指定的字符生成5位长度的随机字符串
RandomStringUtils.random(
5
,
new
char
[]{
'a'
,
'b'
,
'c'
,
'd'
,
'e'
,
'f'
,
'1'
,
'2'
,
'3'
});
//生成指定长度的字母和数字的随机组合字符串
RandomStringUtils.randomAlphanumeric(
5
);
//生成随机数字字符串
RandomStringUtils.randomNumeric(
5
);
//生成随机[a-z]字符串,包含大小写
RandomStringUtils.randomAlphabetic(
5
);
//生成从ASCII 32到126组成的随机字符串
RandomStringUtils.randomAscii(
4
);
RandomStringUtils 类,非常的简单非常的方便。
/**
* count 创建一个随机字符串,其长度是指定的字符数,字符将从参数的字母数字字符集中选择,如参数所示。
* letters true,生成的字符串可以包括字母字符
* numbers true,生成的字符串可以包含数字字符
*/
String random = RandomStringUtils.random(
15
,
true
,
false
);
System.out.println(random);
/**
* 创建一个随机字符串,其长度是指定的字符数。
* 将从所有字符集中选择字符
*/
random = RandomStringUtils.random(
22
);
System.out.println(random);
/**
* 创建一个随机字符串,其长度是指定的字符数。
* 字符将从字符串指定的字符集中选择,不能为空。如果NULL,则使用所有字符集。
*/
random = RandomStringUtils.random(
15
,
"abcdefgABCDEFG123456789"
);
System.out.println(random);
/**
* 创建一个随机字符串,其长度是指定的字符数,字符将从参数的字母数字字符集中选择,如参数所示。
* count:计算创建的随机字符长度
* start:字符集在开始时的位置
* end:字符集在结束前的位置,必须大于65
* letters true,生成的字符串可以包括字母字符
* numbers true,生成的字符串可以包含数字字符
*
*/
random = RandomStringUtils.random(
1009
,
5
,
129
,
true
,
true
);
/**
* 产生一个长度为指定的随机字符串的字符数,字符将从拉丁字母(a-z、A-Z的选择)。
* count:创建随机字符串的长度
*/
random = RandomStringUtils.randomAlphabetic(
15
);
/**
* 创建一个随机字符串,其长度介于包含最小值和最大最大值之间,,字符将从拉丁字母(a-z、A-Z的选择)。
* minLengthInclusive :要生成的字符串的包含最小长度
* maxLengthExclusive :要生成的字符串的包含最大长度
*/
random = RandomStringUtils.randomAlphabetic(
2
,
15
);
/**
* 创建一个随机字符串,其长度是指定的字符数,字符将从拉丁字母(a-z、A-Z)和数字0-9中选择。
* count :创建的随机数长度
*/
random = RandomStringUtils.randomAlphanumeric(
15
);
/**
* 创建一个随机字符串,其长度介于包含最小值和最大最大值之间,字符将从拉丁字母(a-z、A-Z)和数字0-9中选择。
* minLengthInclusive :要生成的字符串的包含最小长度
* maxLengthExclusive :要生成的字符串的包含最大长度
*
*/
random = RandomStringUtils.randomAlphanumeric(
5
,
68
);
/**
* 创建一个随机字符串,其长度是指定的字符数,字符将从ASCII值介于32到126之间的字符集中选择(包括)
* count:随机字符串的长度
*/
random = RandomStringUtils.randomAscii(
15
);
/**
* 创建一个随机字符串,其长度介于包含最小值和最大最大值之间,字符将从ASCII值介于32到126之间的字符集中选择(包括)
* minLengthInclusive :要生成的字符串的包含最小长度
* maxLengthExclusive :要生成的字符串的包含最大长度
*/
random = RandomStringUtils.randomAscii(
15
,
30
);
/**
* 创建一个随机字符串,其长度是指定的字符数,将从数字字符集中选择字符。
* count:生成随机数的长度
*/
random = RandomStringUtils.randomNumeric(
15
);
/**
* 创建一个随机字符串,其长度介于包含最小值和最大最大值之间,将从数字字符集中选择字符.
* minLengthInclusive, 要生成的字符串的包含最小长度
* maxLengthExclusive 要生成的字符串的包含最大长度
*/
random = RandomStringUtils.randomNumeric(
15
,
20
);