修复RandomUtil.randomStringWithoutStr方法问题

This commit is contained in:
Looly 2024-04-17 15:30:49 +08:00
parent 3fc15c4f24
commit ce6c2ae15b
2 changed files with 17 additions and 5 deletions

View File

@ -675,14 +675,28 @@ public class RandomUtil {
return randomString(BASE_CHAR_NUMBER_LOWER, length).toUpperCase();
}
/**
* 获得一个随机的字符串只包含数字和字母 并排除指定字符串
*
* @param length 字符串的长度
* @param elemData 要排除的字符串,去重容易混淆的字符串oO0lL1q9QpP区分大小写
* @return 随机字符串
*/
public static String randomStringWithoutStr(final int length, final String elemData) {
String baseStr = BASE_CHAR_NUMBER;
baseStr = StrUtil.removeAll(baseStr, elemData.toCharArray());
return randomString(baseStr, length);
}
/**
* 获得一个随机的字符串只包含数字和小写字母 并排除指定字符串
*
* @param length 字符串的长度
* @param elemData 要排除的字符串,去重容易混淆的字符串oO0lL1q9QpP不区分大小写
* @return 随机字符串
* @since 5.8.28
*/
public static String randomStringWithoutStr(final int length, final String elemData) {
public static String randomStringLowerWithoutStr(final int length, final String elemData) {
String baseStr = BASE_CHAR_NUMBER_LOWER;
baseStr = StrUtil.removeAll(baseStr, elemData.toLowerCase().toCharArray());
return randomString(baseStr, length);

View File

@ -76,11 +76,9 @@ public class RandomUtilTest {
}
@Test
@Disabled
public void randomStringWithoutStrTest() {
public void randomStringLowerWithoutStrTest() {
for (int i = 0; i < 100; i++) {
final String s = RandomUtil.randomStringWithoutStr(8, "0IPOL");
System.out.println(s);
final String s = RandomUtil.randomStringLowerWithoutStr(8, "0IPOL");
for (final char c : "0IPOL".toCharArray()) {
Assertions.assertFalse(s.contains((String.valueOf(c).toLowerCase(Locale.ROOT))));
}