2017-03-08 6 views
-2

文字列が有効なパスワードである場合に返す関数を記述します。パスワードチェッカーJava

8文字以上で、文字と数字の組み合わせは である必要があります。

これは、これまでの私のコードです:

for (int i = 1; i < password.length() -1; i++) 
{ 
    char l = password.charAt(i); 
    if (password.length() < 8 && !Character.isLetter(l) || !Character.isDigit(l)) 
    { 
     return false; 
    } 
} 
return true; 
+4

を行うには、正規表現を使用することができますなぜ '1でi'を開始?インデックス0で最初の手紙を忘れてしまいます。 –

+0

そして何が問題なのですか? – fvu

+0

ループ内の長さを繰り返し確認する必要はありません。あなたは '! isLetter &&! isDigit'(通知**と**)。 –

答えて

0
public static boolean isValid(String pw) { 
    return pw.matches("[a-zA-Z0-9]{8,}"); 
} 
+0

'\ w'は文字、数字、アンダースコアと一致します。 –

+0

ああ、良い点は、より厳密になるように変更しました – mike

+0

これは正しいです。別の方法: '" \ p {Alnum} {8、} "' –

0

あなたはこの

private static boolean isPasswordValid(String password) { 
    return password.matches("(\\w+){8,}"); 
} 
関連する問題