問題描述:檢查密碼代碼
某些網站對密碼施加了一定的規則。編寫一個方法來檢查一個字符串是否是一個有效的密碼。假設密碼規則如下:
- 密碼必須至少包含8個字符。
- 密碼只包含字母和數字。
- 密碼必須至少包含兩位數字。
編寫一個程序,提示用戶輸入密碼,如果遵循規則顯示「有效密碼」,否則顯示「無效密碼」。
這是我到目前爲止有:
import java.util.*;
import java.lang.String;
import java.lang.Character;
/**
* @author CD
* 12/2/2012
* This class will check your password to make sure it fits the minimum set requirements.
*/
public class CheckingPassword {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Please enter a Password: ");
String password = input.next();
if (isValid(password)) {
System.out.println("Valid Password");
} else {
System.out.println("Invalid Password");
}
}
public static boolean isValid(String password) {
//return true if and only if password:
//1. have at least eight characters.
//2. consists of only letters and digits.
//3. must contain at least two digits.
if (password.length() < 8) {
return false;
} else {
char c;
int count = 1;
for (int i = 0; i < password.length() - 1; i++) {
c = password.charAt(i);
if (!Character.isLetterOrDigit(c)) {
return false;
} else if (Character.isDigit(c)) {
count++;
if (count < 2) {
return false;
}
}
}
}
return true;
}
}
當我運行該程序只檢查密碼的長度,我無法弄清楚如何確保它的字母和數字的檢查,並且密碼中至少有兩位數字。
前值修正爲這是它應該是如果password.length()<= 8,因爲它說「至少8「,這意味着8是有效的。 – ThePerson
@NutterzUK:所以,如果8有效,如果長度<8,則該方法應該返回false。OP得到了正確的結果。 –
你允許使用正則表達式嗎? – Vulcan