Это назначение класса, и я должен проверить введенный пользователем пароль.Я не могу понять, как проверить пароль на допустимые символы.Это следующие требования:
1.Цифр до тех пор, пока не будет введен действительный пароль.
Действительный пароль:
должен содержать как минимум 1 заглавную букву.
должно содержать не менее 1 строчной буквы.
должно быть не менее 6 символов.
должно содержать не менее 1 цифры.
должно содержать только буквы, цифры илиunderscore
Мне нужна помощь с оператором if, который устанавливает для hasValidCharacters значение true, а для isValid - значение true, чтобы я мог отобразить правильный пароль.
String password;
boolean isValid = false;
boolean hasUpperCase = false;
boolean hasLowerCase = false;
boolean hasDigit = false;
boolean hasValidCharacters = false;
boolean hasLength = false;
//Loop until a valid password is entered
System.out.print("Enter password: ");
password = kb.nextLine();
char ch;
for(int i=0;i<password.length();i++)
{
ch = password.charAt(i);
//Display all appropriate error messages
if(Character.isUpperCase(ch))
hasUpperCase=true;
else
System.out.println("ERROR: should have at least 1 uppercase letter.");
if(Character.isLowerCase(ch))
hasLowerCase=true;
else
System.out.println("ERROR: should have at least 1 lowercase letter.");
if(password.length()>6)
hasLength=true;
else
System.out.println("ERROR: should be at least 6 characters long.");
if(Character.isDigit(ch))
hasDigit=true;
else
System.out.println("ERROR: should have at least 1 digit.");
if()
hasValidCharacters=true;
else
System.out.println("ERROR: should only contain letters, digits or underscore");
//Display password when valid
if(isValid=true)
System.out.println(password + " is valid. ");
else
System.out.print("Enter valid password: ");
password = kb.nextLine();
}
}
}