mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
add RandomUtil.randomStringWithoutStr
This commit is contained in:
parent
17efa74406
commit
8e5bbdf170
@ -13,6 +13,7 @@
|
|||||||
* 【core】 增加DateUtil.parseCST方法(issue#570@Github)
|
* 【core】 增加DateUtil.parseCST方法(issue#570@Github)
|
||||||
* 【core】 增加defaultIfEmpty方法
|
* 【core】 增加defaultIfEmpty方法
|
||||||
* 【crypto】 修改bigIntToFixexLengthBytes为bigIntToFixedLengthBytes(pr#575@Github)
|
* 【crypto】 修改bigIntToFixexLengthBytes为bigIntToFixedLengthBytes(pr#575@Github)
|
||||||
|
* 【core】 RandomUtil增加randomStringWithoutStr(pr#76@Gitee)
|
||||||
|
|
||||||
### Bug修复
|
### Bug修复
|
||||||
* 【all】 修复阶乘计算错误bug(issue#I12XE4@Gitee)
|
* 【all】 修复阶乘计算错误bug(issue#I12XE4@Gitee)
|
||||||
|
@ -27,15 +27,20 @@ import cn.hutool.core.lang.WeightRandom.WeightObj;
|
|||||||
* 随机工具类
|
* 随机工具类
|
||||||
*
|
*
|
||||||
* @author xiaoleilu
|
* @author xiaoleilu
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public class RandomUtil {
|
public class RandomUtil {
|
||||||
|
|
||||||
/** 用于随机选的数字 */
|
/**
|
||||||
|
* 用于随机选的数字
|
||||||
|
*/
|
||||||
public static final String BASE_NUMBER = "0123456789";
|
public static final String BASE_NUMBER = "0123456789";
|
||||||
/** 用于随机选的字符 */
|
/**
|
||||||
|
* 用于随机选的字符
|
||||||
|
*/
|
||||||
public static final String BASE_CHAR = "abcdefghijklmnopqrstuvwxyz";
|
public static final String BASE_CHAR = "abcdefghijklmnopqrstuvwxyz";
|
||||||
/** 用于随机选的字符和数字 */
|
/**
|
||||||
|
* 用于随机选的字符和数字
|
||||||
|
*/
|
||||||
public static final String BASE_CHAR_NUMBER = BASE_CHAR + BASE_NUMBER;
|
public static final String BASE_CHAR_NUMBER = BASE_CHAR + BASE_NUMBER;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -83,9 +88,9 @@ public class RandomUtil {
|
|||||||
*
|
*
|
||||||
* @param isSecure 是否为强随机数生成器 (RNG)
|
* @param isSecure 是否为强随机数生成器 (RNG)
|
||||||
* @return {@link Random}
|
* @return {@link Random}
|
||||||
* @since 4.1.15
|
|
||||||
* @see #getSecureRandom()
|
* @see #getSecureRandom()
|
||||||
* @see #getRandom()
|
* @see #getRandom()
|
||||||
|
* @since 4.1.15
|
||||||
*/
|
*/
|
||||||
public static Random getRandom(boolean isSecure) {
|
public static Random getRandom(boolean isSecure) {
|
||||||
return isSecure ? getSecureRandom() : getRandom();
|
return isSecure ? getSecureRandom() : getRandom();
|
||||||
@ -178,9 +183,9 @@ public class RandomUtil {
|
|||||||
/**
|
/**
|
||||||
* 获得指定范围内的随机数
|
* 获得指定范围内的随机数
|
||||||
*
|
*
|
||||||
* @param min 最小数(包含)
|
* @param min 最小数(包含)
|
||||||
* @param max 最大数(不包含)
|
* @param max 最大数(不包含)
|
||||||
* @param scale 保留小数位数
|
* @param scale 保留小数位数
|
||||||
* @param roundingMode 保留小数的模式 {@link RoundingMode}
|
* @param roundingMode 保留小数的模式 {@link RoundingMode}
|
||||||
* @return 随机数
|
* @return 随机数
|
||||||
* @since 4.0.8
|
* @since 4.0.8
|
||||||
@ -202,7 +207,7 @@ public class RandomUtil {
|
|||||||
/**
|
/**
|
||||||
* 获得指定范围内的随机数
|
* 获得指定范围内的随机数
|
||||||
*
|
*
|
||||||
* @param scale 保留小数位数
|
* @param scale 保留小数位数
|
||||||
* @param roundingMode 保留小数的模式 {@link RoundingMode}
|
* @param roundingMode 保留小数的模式 {@link RoundingMode}
|
||||||
* @return 随机数
|
* @return 随机数
|
||||||
* @since 4.0.8
|
* @since 4.0.8
|
||||||
@ -225,8 +230,8 @@ public class RandomUtil {
|
|||||||
/**
|
/**
|
||||||
* 获得指定范围内的随机数
|
* 获得指定范围内的随机数
|
||||||
*
|
*
|
||||||
* @param limit 限制随机数的范围,不包括这个数
|
* @param limit 限制随机数的范围,不包括这个数
|
||||||
* @param scale 保留小数位数
|
* @param scale 保留小数位数
|
||||||
* @param roundingMode 保留小数的模式 {@link RoundingMode}
|
* @param roundingMode 保留小数的模式 {@link RoundingMode}
|
||||||
* @return 随机数
|
* @return 随机数
|
||||||
* @since 4.0.8
|
* @since 4.0.8
|
||||||
@ -283,7 +288,7 @@ public class RandomUtil {
|
|||||||
/**
|
/**
|
||||||
* 随机获得列表中的元素
|
* 随机获得列表中的元素
|
||||||
*
|
*
|
||||||
* @param <T> 元素类型
|
* @param <T> 元素类型
|
||||||
* @param list 列表
|
* @param list 列表
|
||||||
* @return 随机元素
|
* @return 随机元素
|
||||||
*/
|
*/
|
||||||
@ -294,8 +299,8 @@ public class RandomUtil {
|
|||||||
/**
|
/**
|
||||||
* 随机获得列表中的元素
|
* 随机获得列表中的元素
|
||||||
*
|
*
|
||||||
* @param <T> 元素类型
|
* @param <T> 元素类型
|
||||||
* @param list 列表
|
* @param list 列表
|
||||||
* @param limit 限制列表的前N项
|
* @param limit 限制列表的前N项
|
||||||
* @return 随机元素
|
* @return 随机元素
|
||||||
*/
|
*/
|
||||||
@ -306,7 +311,7 @@ public class RandomUtil {
|
|||||||
/**
|
/**
|
||||||
* 随机获得数组中的元素
|
* 随机获得数组中的元素
|
||||||
*
|
*
|
||||||
* @param <T> 元素类型
|
* @param <T> 元素类型
|
||||||
* @param array 列表
|
* @param array 列表
|
||||||
* @return 随机元素
|
* @return 随机元素
|
||||||
* @since 3.3.0
|
* @since 3.3.0
|
||||||
@ -318,7 +323,7 @@ public class RandomUtil {
|
|||||||
/**
|
/**
|
||||||
* 随机获得数组中的元素
|
* 随机获得数组中的元素
|
||||||
*
|
*
|
||||||
* @param <T> 元素类型
|
* @param <T> 元素类型
|
||||||
* @param array 列表
|
* @param array 列表
|
||||||
* @param limit 限制列表的前N项
|
* @param limit 限制列表的前N项
|
||||||
* @return 随机元素
|
* @return 随机元素
|
||||||
@ -331,8 +336,8 @@ public class RandomUtil {
|
|||||||
/**
|
/**
|
||||||
* 随机获得列表中的一定量元素
|
* 随机获得列表中的一定量元素
|
||||||
*
|
*
|
||||||
* @param <T> 元素类型
|
* @param <T> 元素类型
|
||||||
* @param list 列表
|
* @param list 列表
|
||||||
* @param count 随机取出的个数
|
* @param count 随机取出的个数
|
||||||
* @return 随机元素
|
* @return 随机元素
|
||||||
*/
|
*/
|
||||||
@ -349,9 +354,9 @@ public class RandomUtil {
|
|||||||
/**
|
/**
|
||||||
* 随机获得列表中的一定量的不重复元素,返回Set
|
* 随机获得列表中的一定量的不重复元素,返回Set
|
||||||
*
|
*
|
||||||
* @param <T> 元素类型
|
* @param <T> 元素类型
|
||||||
* @param collection 列表
|
* @param collection 列表
|
||||||
* @param count 随机取出的个数
|
* @param count 随机取出的个数
|
||||||
* @return 随机元素
|
* @return 随机元素
|
||||||
* @throws IllegalArgumentException 需要的长度大于给定集合非重复总数
|
* @throws IllegalArgumentException 需要的长度大于给定集合非重复总数
|
||||||
*/
|
*/
|
||||||
@ -394,16 +399,13 @@ public class RandomUtil {
|
|||||||
/**
|
/**
|
||||||
* 获得一个随机的字符串(只包含数字和字符) 并排除指定字符串
|
* 获得一个随机的字符串(只包含数字和字符) 并排除指定字符串
|
||||||
*
|
*
|
||||||
* @param length 字符串的长度
|
* @param length 字符串的长度
|
||||||
* @param elemData 要排除的字符串
|
* @param elemData 要排除的字符串
|
||||||
* @return 随机字符串
|
* @return 随机字符串
|
||||||
*/
|
*/
|
||||||
public static String randomStringWithoutStr(int length,String elemData) {
|
public static String randomStringWithoutStr(int length, String elemData) {
|
||||||
String baseStr=BASE_CHAR_NUMBER;
|
String baseStr = BASE_CHAR_NUMBER;
|
||||||
baseStr=StrUtil.removeAll(baseStr,elemData.toCharArray());
|
baseStr = StrUtil.removeAll(baseStr, elemData.toCharArray());
|
||||||
if(baseStr.equals("")){
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
return randomString(baseStr, length);
|
return randomString(baseStr, length);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -421,10 +423,13 @@ public class RandomUtil {
|
|||||||
* 获得一个随机的字符串
|
* 获得一个随机的字符串
|
||||||
*
|
*
|
||||||
* @param baseString 随机字符选取的样本
|
* @param baseString 随机字符选取的样本
|
||||||
* @param length 字符串的长度
|
* @param length 字符串的长度
|
||||||
* @return 随机字符串
|
* @return 随机字符串
|
||||||
*/
|
*/
|
||||||
public static String randomString(String baseString, int length) {
|
public static String randomString(String baseString, int length) {
|
||||||
|
if (StrUtil.isEmpty(baseString)) {
|
||||||
|
return StrUtil.EMPTY;
|
||||||
|
}
|
||||||
final StringBuilder sb = new StringBuilder(length);
|
final StringBuilder sb = new StringBuilder(length);
|
||||||
|
|
||||||
if (length < 1) {
|
if (length < 1) {
|
||||||
@ -483,7 +488,7 @@ public class RandomUtil {
|
|||||||
/**
|
/**
|
||||||
* 带有权重的随机生成器
|
* 带有权重的随机生成器
|
||||||
*
|
*
|
||||||
* @param <T> 随机对象类型
|
* @param <T> 随机对象类型
|
||||||
* @param weightObjs 带有权重的对象列表
|
* @param weightObjs 带有权重的对象列表
|
||||||
* @return {@link WeightRandom}
|
* @return {@link WeightRandom}
|
||||||
* @since 4.0.3
|
* @since 4.0.3
|
||||||
@ -495,7 +500,7 @@ public class RandomUtil {
|
|||||||
/**
|
/**
|
||||||
* 带有权重的随机生成器
|
* 带有权重的随机生成器
|
||||||
*
|
*
|
||||||
* @param <T> 随机对象类型
|
* @param <T> 随机对象类型
|
||||||
* @param weightObjs 带有权重的对象列表
|
* @param weightObjs 带有权重的对象列表
|
||||||
* @return {@link WeightRandom}
|
* @return {@link WeightRandom}
|
||||||
* @since 4.0.3
|
* @since 4.0.3
|
||||||
@ -505,6 +510,7 @@ public class RandomUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------- UUID
|
// ------------------------------------------------------------------- UUID
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return 随机UUID
|
* @return 随机UUID
|
||||||
* @deprecated 请使用{@link IdUtil#randomUUID()}
|
* @deprecated 请使用{@link IdUtil#randomUUID()}
|
||||||
@ -541,10 +547,10 @@ public class RandomUtil {
|
|||||||
/**
|
/**
|
||||||
* 以给定日期为基准,随机产生一个日期
|
* 以给定日期为基准,随机产生一个日期
|
||||||
*
|
*
|
||||||
* @param baseDate 基准日期
|
* @param baseDate 基准日期
|
||||||
* @param dateField 偏移的时间字段,例如时、分、秒等
|
* @param dateField 偏移的时间字段,例如时、分、秒等
|
||||||
* @param min 偏移最小量,可以为负数表示过去的时间(包含)
|
* @param min 偏移最小量,可以为负数表示过去的时间(包含)
|
||||||
* @param max 偏移最大量,可以为负数表示过去的时间(不包含)
|
* @param max 偏移最大量,可以为负数表示过去的时间(不包含)
|
||||||
* @return 随机日期
|
* @return 随机日期
|
||||||
* @since 4.5.8
|
* @since 4.5.8
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user