【Java】+随机生成字符串
https://www.cnblogs.com/jpfss/p/9772019.html
package SpringAPIAutoTestApp.Common.RandomUtil; import org.apache.commons.lang3.RandomStringUtils; import org.apache.commons.lang3.RandomUtils; import java.util.Random; /** * @Author: * @Date: 2022/2/24 14:41 * @Description: 随机工具 * @Version: v1.0 */ public interface IRandomUtil { /** * 获取随机字符串(大小写+数字) * * @param length 字符串长度 * @return */ static String getRandomStr(Integer length) { return RandomStringUtils.random(length, 5, 129, true, true); } /** * 获取随机数字字符串(默认首位不为0) * * @param length 字符串长度 * @return */ static String getRandomNumber(Integer length) { return getRandomNumber(length, false); } /** * 获取随机数字字符串 * * @param length 字符串长度 * @param firstIsZero true-首位可以为0;false-首位不能为0 * @return */ static String getRandomNumber(Integer length, boolean firstIsZero) { if (firstIsZero) { return RandomStringUtils.randomNumeric(length); } return String.format("%s%s", RandomUtils.nextInt(1, 9), RandomStringUtils.randomNumeric(length - 1)); } /** * 获取随机字符串(中文) * * @param length 字符串长度 * @return */ static String getRandomStrCh(Integer length) { return RandomStringUtils.random(100, 0x4e00, 0x9fa5, false, false); } /** * 随机获取ASCII码中 十进制为32-126指定长度的对应字符 * * @param length * @return 如:_mq+<#\=0hIeGm1C(?dH/\]&yp|YB|&g(<r4[fwZO]jhvKClJZon(5W9)moZ*^xJJ6\2r[4uOKX.(`)^1(5 */ static String getRandomAsciiStr(Integer length) { return getRandomAsciiStr(length, 32, 126); } /** * 随机获取ASCII码中 指定区域指定长度的对应字符 * * @param length * @param asciiStart ASCII码起始位置(十进制) * @param asciiEnd ASCII码结束位置(十进制) * @return */ static String getRandomAsciiStr(Integer length, Integer asciiStart, Integer asciiEnd) { String randomStr = ""; for (int i = 0; i < length; i++) { int ascii = (int) (Math.random() * (asciiEnd - asciiStart) + asciiStart); randomStr += (char) ascii; } return randomStr; } /** * 获取随机字符串(所有字符) * * @param length 字符串长度 * @return 如:尢Y学I尢2Nd57E膧b淫爜B,9rxm隐祔6沼凣cSg{J淧L髆M淧N間Uqx96Hq飖S韨莩7梳4YPi膧iJS覘撜藯O[芩g */ static String getRandomAllChar(Integer length) { String randomStrWap = getRandomAsciiStr(length); randomStrWap += getRandomStr(length); randomStrWap += getRandomStrCh(length); String randomStr = ""; for (int i = 0; i < length; i++) { randomStr += randomStrWap.charAt(new Random().nextInt(randomStrWap.length())); } return randomStr; } /** * 生成随机小数 * <p> * 如:getRandomDouble(50, 10, 2) == 12.34 * * @param max 最大值 * @param min 最小值 * @param fCount 保留的小数位数 * @return */ static double getRandomDouble(Integer max, Integer min, Integer fCount) { String data = String.format("%." + fCount + "f", (Math.random() * (max - min) + min)); System.out.println(data); return Double.valueOf(data); } }
如果忍耐算是坚强 我选择抵抗 如果妥协算是努力 我选择争取
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义