android 随机生成字符串,JAVA8下生成随机字符串

最近有个需求需要生成一个20位的随机字符串,先在commons-lang3的包下3.6版本的RandomStringUtils的类已经被标注为Deprecated不能使用了

//commons-lang3下3.6版本的

/** @deprecated */

@Deprecated

public class RandomStringUtils {

private static final Random RANDOM = new Random();

看了下API文档上说是移到commons-text包的RandomStringGenerator类了。

立刻拉下来试试

//官方友好的给了提示

//生成20个字符长度的a到z的随机字符串

// Generates a 20 code point string, using only the letters a-z

RandomStringGenerator generator = new RandomStringGenerator.Builder()

.withinRange('a', 'z').build();

String randomLetters = generator.generate(20);

//但是我的需要是0 -9 ,a - z这种情况怎么办。

//查了一圈发现有个filter 添加过滤规则就行。

RandomStringGenerator generator = new RandomStringGenerator.Builder().withinRange('0', 'z').filteredBy(LETTERS, DIGITS).build();

//保留是数字的,字母的

//同样我们还能实现自己的过滤器 这使用强大的lamda表达式,我们只要‘3’到‘9’的数字字符和字母(注意引号)

CharacterPredicate filter2 = c -> c >= '3' && c<= '9';

RandomStringGenerator generator = new RandomStringGenerator.Builder().withinRange('0', 'Z').filteredBy(filter2,LETTERS).build();

String randomLetters = generator.generate(20);

//输出

CENKAMSPXM6U4LDB7T6Q

UTQNK86H65VF5GL3MRU6

NAL5HWML7WYLOCKDBPPB

KBWHIYCUHRX9LKVOZ4LV

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值