一些网站制定了密码规则。假设规则如下:
(1)密码至少8个字符。
(2)密码至少包含2个数字。
(3)密码是“回文”。编写三个方法,分别用于检测3个规则,三个方法的返回值都是boolean型。
在main方法中通过Scanner对象输入密码,如果密码合法,则显示“Valid Password”,否则显示“invalid Password”
import java.util.Scanner;
public class PasswordChecker {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入密码:");
String password = scanner.nextLine();
if (isValidPassword(password)) {
System.out.println("Valid Password");
} else {
System.out.println("Invalid Password");
}
}
public static boolean isValidPassword(String password) {
return hasAtLeastEightCharacters(password) &&
hasAtLeastTwoDigits(password) &&
isPalindrome(password);
}
public static boolean hasAtLeastEightCharacters(String password) {
return password.length() >= 8;
}
public static boolean hasAtLeastTwoDigits(String password) {
int digitCount = 0;
for (int i = 0; i < password.length(); i++) {
if (Character.isDigit(password.charAt(i))) {
digitCount++;
}
}
return digitCount >= 2;
}
public static boolean isPalindrome(String password) {
int i = 0;
int j = password.length() - 1;
while (i < j) {
if (password.charAt(i) != password.charAt(j)) {
return false;
}
i++;
j--;
}
return true;
}
}
在这个解决方案中,定义了一个名为PasswordChecker的类,其中包含了三个方法来检查密码是否符合规则。isValidPassword()方法调用了这三个方法,并返回一个布尔值来指示密码是否有效。在主方法中,使用Scanner对象来读取用户输入的密码,并调用isValidPassword()方法来检查密码的有效性。如果密码有效,则显示“Valid Password”,否则显示“Invalid Password”。
请注意,这个解决方案假设密码只包含字母和数字,并且不区分大小写。如果需要检查其他字符或区分大小写,请相应地修改代码。