java实现 写一个方法,入参是一个字符串,校验字符串是否合法校验规则如下: a)长度超过10 b)包含大小写字母、数字、其他字符(不包含运算符)以上四种中至少3种 c)必须以字母开头; d)字符串中不能存在长度超过3的重复子串;
时间: 2024-05-27 18:12:10 浏览: 48
public static boolean checkString(String str) {
// 长度超过10
if (str.length() <= 10) {
return false;
}
// 包含大小写字母、数字、其他字符(不包含运算符)以上四种中至少3种
int typeCount = 0;
if (str.matches(".*[a-z].*")) {
typeCount++;
}
if (str.matches(".*[A-Z].*")) {
typeCount++;
}
if (str.matches(".*\\d.*")) {
typeCount++;
}
if (str.matches(".*[^a-zA-Z\\d].*")) {
typeCount++;
}
if (typeCount < 3) {
return false;
}
// 必须以字母开头
if (!Character.isLetter(str.charAt(0))) {
return false;
}
// 字符串中不能存在长度超过3的重复子串
for (int i = 0; i < str.length() - 3; i++) {
String subStr = str.substring(i, i + 3);
if (str.indexOf(subStr, i + 1) != -1) {
return false;
}
}
return true;
}
阅读全文