public class PresetString extends Object
文件名:PresetString.java
用途:该工具提供一些常用的随机信息字符串,以及一些常用的生成特殊随机字符串的方法,以便于快速生成需要的随机字符串
编码时间:2021年01月12日 上午9:43:09
修改时间:2023年6月19日 上午9:43:09
Constructor and Description |
---|
PresetString() |
Modifier and Type | Method and Description |
---|---|
static String |
carLicence()
该方法用于生成随机的民用车牌号
|
static String |
carLicence(CarLicecenType carLicecenType)
该方法用于生成一个指定样式的随机车牌
|
static String |
createOrderlyText(String startChar,
String endChar,
int step)
该方法用于根据指定的起始字符与结束字符,通过在
StringMode 中找到其字符对应的模型,之后按照顺序,根据指定的步长,截取模型对应的文本内容进行返回
根据字符查找模型的机制为,将字符与StringMode 枚举中的所有模型进行对比,直到找到字符所在的模型为止,则存在以下几种情况:
获取到的起始模型与结束模型相同,且均能找到模型时,此时存在以下3种情况:
当起始字符与结束字符相同时,则返回该字符
当起始字符所在位置小于结束字符所在位置时,则按照模型顺序截取相应段落的字符串,例如,传入createOrderlyText("b", "d", 1) ,则返回“bcd”
当起始字符所在位置大于结束字符所在位置时,则将模型反序,再按照顺序截取相应段落的字符串,例如,传入createOrderlyText("d", "b", 1) ,则返回“dcb”
获取到的起始模型与结束模型不相同,且均能找到模型时,则截取起始字符所在模型从起始字符开始到模型末尾,再截取结束字符所在模型的开头到结束字符,将其拼接,例如,传入createOrderlyText("w", "3", 1) ,则返回“wxyz123”
当起始字符未找对应模型时,则获取模型字符串的第一位到结束下标的字符串,例如,传入createOrderlyText(";", "c", 1) ,则返回“abc”
当结束字符未找对应模型时,则获取模型字符串的起始字符到末尾的字符串,例如,传入createOrderlyText("x", ";", 1) ,则返回“xyz”
|
static String |
createRandomGroupString(int minLength,
int maxLength,
String templet,
List<RandomString> randomStringList)
该方法用于根据指定的模板,和随机字符串的最小、最大生成长度,以及参与随机的随机字符串类对象集合,生成相应的随机字符串
|
static String |
identityCard(String provinceCode,
String cityCode,
String zoneCode,
int startAge,
int endAge,
int moon,
int day,
SexType sexType)
该方法用于根据指定的参数,生成与参数匹配的随机身份证号
|
static String |
mobleNumber(MobleNumberType mobleNumberType)
根据运营商,生成相应运营商号段的随机号码
|
static String |
name()
生成姓名
|
static String |
randomDecimals(String minNumText,
String maxNumText)
用于生成指定范围内的随机的小数
|
static String |
randomNumber(int minNum,
int maxNum,
boolean isZeroize)
用于生成一个指定范围内的数字,并根据条件进行前位数补0
|
public static String carLicence()
public static String carLicence(CarLicecenType carLicecenType)
carLicecenType
- 车牌的样式public static String identityCard(String provinceCode, String cityCode, String zoneCode, int startAge, int endAge, int moon, int day, SexType sexType)
在生成随机身份证时,除性别枚举传入为null则默认为女性身份证外,其余参数在传入错误的值时,均在合理范围内随机生成一个参数,具体规则如下:
注意:若行政区划为直辖市(例如北京市)或市级下无行政机构(例如新疆高昌区),则传入省份区划代码后,在市级行政区划代码传入4位的代码即可,例如,北京市朝阳区, 则省级代码传入“11”,市级代码传入“0105”,区级代码不用传
provinceCode
- 省级行政区划代码cityCode
- 市级行政区划代码zoneCode
- 区、县级行政区划代码startAge
- 随机年龄段起始年龄endAge
- 随机年龄段结束年龄moon
- 生日月份day
- 生日日数sexType
- 性别public static String name()
public static String mobleNumber(MobleNumberType mobleNumberType)
mobleNumberType
- 运营商号段枚举public static String randomNumber(int minNum, int maxNum, boolean isZeroize)
例如,生成的数字为1,传入的最大值为12,并设置需要补0,则最终返回的结果为:01
minNum
- 范围最小值maxNum
- 范围最大值isZeroize
- 是否需要高位补0public static String randomDecimals(String minNumText, String maxNumText)
该方法可根据传入的小数的位数,自动判断并生成相应位数的随机小数。
注意:由于java中的double在传入整数或者最后一位是0的小数时,默认会将其转换为一位或 去0的处理,导致最终生成的精度不正确,为解决这一问题,故将传参使用字符串的形式代替
minNumText
- 最小值文本maxNumText
- 最大值文本public static String createOrderlyText(String startChar, String endChar, int step)
StringMode
中找到其字符对应的模型,之后按照顺序,根据指定的步长,截取模型对应的文本内容进行返回
StringMode
枚举中的所有模型进行对比,直到找到字符所在的模型为止,则存在以下几种情况:
createOrderlyText("b", "d", 1)
,则返回“bcd”createOrderlyText("d", "b", 1)
,则返回“dcb”createOrderlyText("w", "3", 1)
,则返回“wxyz123”createOrderlyText(";", "c", 1)
,则返回“abc”createOrderlyText("x", ";", 1)
,则返回“xyz”
步长表示在截取到的字符串中,再取相应间隔的字符再次组成字符串,例如,传入createOrderlyText("1", "9", 2)
,则返回“13579”
startChar
- 起始字符endChar
- 结束字符step
- 步长public static String createRandomGroupString(int minLength, int maxLength, String templet, List<RandomString> randomStringList)
注意:
minLength
- 随机字符串最小生成长度maxLength
- 随机字符串最大生成长度templet
- 模板randomStringList
- 随机字符串类对象集合IllegalDataException
- 当名称组为空、名称未对应随机字符串类对象、名称组数量与模板占位符数量不符、传入的区间在随机字符串默认总区间外时抛出的异常Copyright © 2024. All rights reserved.