每次我尝试让用户生成密码时,它总是会返回为假的,无论我是否按照我设置的标准输入它。
我曾多次尝试重写检查方法,但没有运气。我尝试使用数组列表来比较。
public boolean check(String password)
{
if(password.length() < 6 && password.length() > 16)
{
return false;
}
Pattern special = Pattern.compile (specialChars);
Matcher hasSpecial = special.matcher(password);
int i = 0;
boolean hasDigit = false;
boolean hasLower = false;
boolean hasUpper = false;
while(i < password.length() && !hasDigit && !hasLower && !hasUpper)
{
if(Character.isDigit(password.charAt(i)))
{
hasDigit = true;
}
else if(Character.isLowerCase(password.charAt(i)))
{
hasLower = true;
}
else if(Character.isUpperCase(password.charAt(i)))
{
hasUpper = true;
}
i++;
}
return hasDigit && hasUpper && hasLower && hasSpecial.find();
}
我希望密码返回 false,如果它小于 6 个字符且超过 16 个字符。此外,密码必须包含1个数字,一个大写字母,一个小写字母和一个特殊字符
神不在的星期二
慕斯709654
至尊宝的传说
哈士奇WWW
繁星coding
相关分类