我正在编写一个程序来从用户那里获取密码,并确保它至少是 8 个字符、1 个大写字母和 1 个数字。如果您找不到密码,则哨兵是 Q 退出,但它不起作用。这就是我所拥有的...
import java.util.Scanner;
public class Chapter5ProblemSet {
public static void main(String[] args) {
String password = getPassword();
String validatePassword = validatePassword(password);
displayPassword(validatePassword);
}
public static String getPassword(){
String password = "";
Scanner in = new Scanner (System.in);
System.out.print("Please enter a password: ");
password = in.next();
return password;
}
//must be 8 characters, contain 1 uppercase, contain 1 digit
public static String validatePassword(String password){
String validatePassword = "";
boolean oneUpperCase = false;
boolean oneDigit = false;
final String SENTINEL = "Q";
Scanner in = new Scanner (System.in);
while (!oneUpperCase || !oneDigit || password.length()< 8){
validatePassword = "Please try again or enter Q to quit: ";
System.out.print(validatePassword);
password = in.next();
oneUpperCase = !password.equals(password.toLowerCase());
oneDigit = password.matches(".*\\d.*");
}
validatePassword = "Password Ok";
while(!password.equals(SENTINEL));
System.out.print("Quit");
return validatePassword;
}
public static void displayPassword(String validatePassword){
System.out.println(validatePassword);
}
}