So I wrote a method that makes the user enter a password and this password must pass the following specs:
1. Be at least 8 digits long
2. Have an uppercase
3. Have a lowercase
4. Have special digit
I'm not sure as to why when I input it, the output doesn't account for the special Character and throws an error.
Here is my code so far:
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Please enter a given password : ");
String passwordhere = in.nextLine();
System.out.print("Please re-enter the password to confirm : ");
String confirmhere = in.nextLine();
System.out.println("your password is: " + passwordhere);
while (!passwordhere.equals(confirmhere) || !isValid(passwordhere)) {
System.out.println("The password entered here is invalid");
System.out.print("Please enter the password again.it must be valid : ");
String Passwordhere = in.nextLine();
System.out.print("Please re-enter the password to confirm : ");
}
}
public static boolean isValid(String passwordhere) {
if (passwordhere.length() < 8) {
return false;
} else {
for (int p = 0; p < passwordhere.length(); p++) {
if (Character.isUpperCase(passwordhere.charAt(p))) {
}
}
for (int q = 0; q < passwordhere.length(); q++) {
if (Character.isLowerCase(passwordhere.charAt(q))) {
}
}
for (int r = 0; r < passwordhere.length(); r++) {
if (Character.isDigit(passwordhere.charAt(r))) {
}
}
for (int s = 0; s < passwordhere.length(); s++) {
if (Character.isSpecialCharacter(passwordhere.charAt(s))) {
}
}
return true;
}
}
Also, another problem is for example, lets say the user enter bob123
as their password.
How can I get the loop to tell the user what It needs to be a correct password?
On the example above it is missing a Capital Letter and a symbol(*&^..etc).
How can I add this to print out each time the user makes a password and until they get the right password to pass all specs of the code?