2017-03-08 160 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,}"); 
}