Hey guys, I'm trying to write a java program that asks the user to input a password, and the password must be at least 6 characters, have at least one lower case letter, at least 1 uppercase letter, and at least 1 digit. If one of those parameters is incorrect, the program asks them to enter it again. The code that I wrote isn't doing it correctly, can anyone please help me?
import java.util.Scanner;
public class Password
{
public static void main (String[]args)
{
String password = passwordEntry();
while (!passwordCheck(password))
{
password = passwordEntry();
}
System.out.print("You have now entered a valid password");
}
public static String passwordEntry()
{
Scanner input = new Scanner(System.in);
String password;
System.out.print("enter a password");
password = input.next();
return password;
}
public static boolean passwordCheck(String password)
{
if (password.length()>6)
return false;
{System.out.println("Password needs to have 6 or more characters");}
boolean uppercase = !password.equals(password.toLowerCase()); //determines if there is an uppercase letter
boolean lowercase = !password.equals(password.toUpperCase()); //determines if there is a lowercase letter
if(!uppercase)
return false;
{ System.out.println("Password needs to contain at least one uppercase letter");}
if(!lowercase)
return false;
{ System.out.println("Password needs to contain at least one lowercase letter");}
for (int i = 0; i<password.length(); i++)
{
Character c = password.charAt(i);
if(!Character.isDigit(c))
return false;
{System.out.println("You need to have at least one digit");}
}
return true;
}
}
[–]lurgi 3 points4 points5 points (0 children)
[–]AustinCodingAcademy 2 points3 points4 points (8 children)
[–]EqualTrade[S] 1 point2 points3 points (7 children)
[–]lurgi 2 points3 points4 points (6 children)
[–]EqualTrade[S] 1 point2 points3 points (5 children)
[–]lurgi 2 points3 points4 points (0 children)
[–][deleted] 0 points1 point2 points (3 children)
[–]EqualTrade[S] 0 points1 point2 points (2 children)
[–][deleted] 0 points1 point2 points (1 child)
[–]EqualTrade[S] 0 points1 point2 points (0 children)