问题描述:
一些网站对密码施加了某些规则。编写一个检查字符串是否为有效密码的方法。假设密码规则如下:
- 密码必须至少包含八个字符。
- 密码仅由字母和数字组成。
- 密码必须至少包含两位数字。
编写一个程序,提示用户输入密码,如果遵守规则则显示“有效密码”,否则显示“无效密码”。
这是我到目前为止所拥有的:
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;
}
}
当我运行程序时,它只检查密码的长度,我不知道如何确保它同时检查字母和数字,以及密码中至少有两位数字。