Описание проблемы:
Некоторые веб-сайты устанавливают определенные правила для паролей. Напишите метод, который проверяет, является ли строка допустимым паролем. Предположим, что правило пароля выглядит следующим образом:
- Пароль должен содержать не менее восьми символов.
- Пароль состоит только из букв и цифр.
- Пароль должен содержать не менее двух цифр.
Напишите программу, которая предлагает пользователю ввести пароль и отображает «действительный пароль», если правило соблюдается, или «неверный пароль» в противном случае.
Это то, что у меня есть до сих пор:
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;
}
}
Когда я запускаю программу, она проверяет только длину пароля, я не могу понять, как убедиться, что она проверяет как буквы, так и цифры, и чтобы в пароле было как минимум две цифры.