當你分析String
數據,您應該清除左側和右側的空格。這是由Strimg#trim
功能這樣做:
password = password.trim();
要analize字符串的每一個字符,你可以將其轉換爲字符數組,所以它會更容易滿足您的要求:
char[] arrPassword = password.toCharArray();
現在您可以評估使用這些功能的字符:Character#isUpperCase
,Character#isLowerCase
,Character#isDigit
。
最後但並非最不重要,你可以有一個字符串,你需要檢查特殊字符,並檢查你正在評估的實際字符是否在該字符串內。這可以通過使用String#indexOf
和String#valueOf
來實現,這可以將字符串轉換爲字符串類型。
這裏是所有這些解釋代碼示例:
public static final String SPECIAL_CHARACTERS = "[email protected]#$%^&*()~`-=_+[]{}|:\";',./<>?";
public static final int MIN_PASSWORD_LENGTH = 8;
public static final int MAX_PASSWORD_LENGTH = 20;
public static boolean isAcceptablePassword(String password) {
if (TextUtils.isEmpty(password)) {
System.out.println("empty string.");
return false;
}
password = password.trim();
int len = password.length();
if(len < MIN_PASSWORD_LENGTH || len > MAX_PASSWORD_LENGTH) {
System.out.println("wrong size, it must have at least 8 characters and less than 20.");
return false;
}
char[] aC = password.toCharArray();
for(char c : aC) {
if (Character.isUpperCase(c)) {
System.out.println(c + " is uppercase.");
} else
if (Character.isLowerCase(c)) {
System.out.println(c + " is lowercase.");
} else
if (Character.isDigit(c)) {
System.out.println(c + " is digit.");
} else
if (SPECIAL_CHARACTERS.indexOf(String.valueOf(c)) >= 0) {
System.out.println(c + " is valid symbol.");
} else {
System.out.println(c + " is an invalid character in the password.");
return false;
}
}
return true;
}
的System.out.println(c + " is an invalid character in the password.");
句話只是爲了檢查分析實際字符的結果。
那麼,爲什麼你不只是實現你的要求? – 2012-04-01 06:34:05
[密碼強度檢查庫]的可能重複(http://stackoverflow.com/questions/3200292/password-strength-checking-library) – 2012-04-01 06:36:20
?正如我已經提到的,我嘗試過沒有成功。我如何實現?我是一名網頁設計師,而不是一名java程序員,但我正在嘗試爲新的需求編輯一些代碼。 – rick 2012-04-01 06:50:23