Im writing a program to get the password from the user and make sure it is at least 8 characters, 1 uppercase, and 1 number. If you cant find a password the sentinel is Q to quit but it won't work. Here's what I have...
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);
}
}