我需要我的代码来检查密码,密码中的一个字母应该是大写的。当用户进入时。 请协助。
int digcheck=0,charcheck=0,symbcheck=0;
for (int i = 0; i < passwordraw.length(); i++) {
if (Character.isDigit(passwordraw.charAt(i)))
{
digcheck++;
}
else if(Character.isLetter(passwordraw.charAt(i)))
{
charcheck++;
}
else
{
symbcheck++;
}
}
if(digcheck<3)
{
digcheck=0;
throw new OBSSecurityException("INVALID PASSWORD! Must have atleast three(3) digits.");
}else if(charcheck<5)
{
charcheck=0;
throw new OBSSecurityException("INVALID PASSWORD! Must have atleast five(5) alpha.");
}
else if(symbcheck<1)
{
symbcheck=0;
throw new OBSSecurityException("INVALID PASSWORD! Must have atleast one(1) symbol.");
}
答案 0 :(得分:2)
使用正则表达式。
使密码与.*[A-Z]+.*
匹配
这将使您的密码至少有一个大写字符
[编辑] 您也可以使用正则表达式来查找其他限制。
至少有3位数字可以使用此正则表达式
.*[0-9]{1}.*[0-9]{1}.*[0-9]{1}.*
这将匹配任何加1个数字,更多的东西,至少一个数字等等..你可以使用与其他验证类似的正则表达式,如果你需要帮助,请告诉我们
答案 1 :(得分:0)
不要使用嵌套的else-if
,因为您的条件不同。如果条件为真,则跳过其他两个条件。
if(digcheck<3){
digcheck=0;
throw new OBSSecurityException("INVALID PASSWORD! Must have atleast three(3) digits.");
}
if(charcheck<5){
charcheck=0;
throw new OBSSecurityException("INVALID PASSWORD! Must have atleast five(5) alpha.");
}
if(symbcheck<1){
symbcheck=0;
throw new OBSSecurityException("INVALID PASSWORD! Must have atleast one(1) symbol.");
}
答案 2 :(得分:0)
编写一个检查密码是否包含至少一个大写字符的方法:
public boolean containsAtLeastOneUpperCase(String password) {
for(Character c : password.toCharArray()) {
if (Character.isUpperCase(c)) {
return true;
}
}
return false;
}
答案 3 :(得分:0)
int digcheck=0,charcheck=0,symbcheck=0,caseCheck=0;
for (int i = 0; i < passwordraw.length(); i++) {
if (Character.isDigit(passwordraw.charAt(i)))
{
digcheck++;
}
else if(Character.isLetter(passwordraw.charAt(i)))
{
charcheck++;
if(Character.isUpperCase(passwordraw.charAt(i))){
caseCheck++;
}
}
else
{
symbcheck++;
}
}
if(digcheck<3)
{
digcheck=0;
throw new OBSSecurityException("INVALID PASSWORD! Must have atleast three(3) digits.");
}else if(charcheck<5)
{
charcheck=0;
throw new OBSSecurityException("INVALID PASSWORD! Must have atleast five(5) alpha.");
}
else if(symbcheck<1)
{
symbcheck=0;
throw new OBSSecurityException("INVALID PASSWORD! Must have atleast one(1) symbol.");
}
else if(caseCheck<1)
{
caseCheck=0;
throw new OBSSecurityException("INVALID PASSWORD! Must have atleast one(1) Uppercase Letter.");
}