0

パスワードを確認するにはコードが必要で、パスワードの文字の 1 つを大文字にする必要があります。ユーザーが入っているとき。手伝ってください。

        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.");
        }
4

4 に答える 4

2

正規表現を使用します。

パスワードをこれと一致.*[A-Z]+.* させると、パスワードに少なくとも1つの大文字が含まれます

[編集] 正規表現を使用して他の制限を見つけることもできます。

少なくとも 3 桁の数字を取得するには、この正規表現を使用できます

.*[0-9]{1}.*[0-9]{1}.*[0-9]{1}.*

これは、任意のプラス 1 桁、それ以上の任意の桁、少なくとも 1 桁などと一致します。他の検証と同様の正規表現を使用できます。ヘルプが必要な場合はお知らせください。

于 2013-10-25T08:35:00.987 に答える
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.");
    }
于 2013-10-25T08:43:35.817 に答える
0

else-if条件が異なるため、ネストを使用しないでください。条件が真の場合、他の 2 つの条件はスキップされます。

   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.");
    }
于 2013-10-25T08:33:51.290 に答える
0

パスワードに少なくとも 1 つの大文字が含まれているかどうかをチェックするメソッドを作成します。

public boolean containsAtLeastOneUpperCase(String password) {
    for(Character c : password.toCharArray()) {
        if (Character.isUpperCase(c)) {
            return true;
        }
    }
    return false;
}
于 2013-10-25T08:37:18.367 に答える