You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Apache Commons Text的RandomStringGenerator生成含特殊字符的Java随机字符串?

使用Apache Commons Text生成随机字符串

我日常开发里经常用Apache Commons Text的RandomStringGenerator来生成随机字符串,下面是我封装好的工具类代码,把常用的纯字母随机串生成逻辑抽出来了,方便复用:

// 工具类
private static RandomStringGenerator generator(int minimumCodePoint, int maximumCodePoint, CharacterPredicates... predicates) {
    return new RandomStringGenerator.Builder()
            .withinRange(minimumCodePoint, maximumCodePoint)
            .filteredBy(predicates)
            .build();
}

public static String randStringAlpha(int length) {
    return generator('A', 'z', CharacterPredicates.LETTERS).generate(length);
}

// 还可以扩展其他生成规则,比如带数字的随机串
// public static String randStringAlphaNum(int length) {
//     return generator('0', 'z', CharacterPredicates.LETTERS, CharacterPredicates.DIGITS).generate(length);
// }

简单解释下逻辑:

  • 私有方法generator是通用的生成器构建模板,通过指定字符的Unicode码点范围,再配合CharacterPredicates过滤规则,快速创建配置好的RandomStringGenerator实例。
  • randStringAlpha方法专门生成纯字母随机串:指定的码点范围'A'到'z'覆盖了大小写字母,再通过CharacterPredicates.LETTERS过滤,确保输出的字符全是字母,不会混入其他符号。

如果需要生成带数字、特殊符号的随机串,只要扩展对应的方法,调整码点范围和过滤规则就行,灵活性很高。

内容的提问来源于stack exchange,提问作者iamkenos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:18:12