У меня проблема, которая требует как минимум 2 заглавные буквы, как минимум 2 строчные буквы и 2 цифры.
Вот точная проблема:
Напишите приложение, которое запрашивает у пользователя пароль, который содержит как минимум две заглавные буквы, как минимум две строчные буквы и как минимум две цифры,После ввода пароля отобразите сообщение, указывающее, был ли пользователь успешным или причина его неуспешна.
Например, если пользователь вводит «Пароль», ваша программа должна вывести: Ваш пароль был недействителен дляследующие причины: прописные буквы, цифры
Если пользователь вводит «P4SSw0rd», ваша программа должна вывести: действительный пароль
Вот мое кодирование до сих пор, у меня проблема свключая выходные строки.Например, если у кого-то нет 2 заглавных букв И нет 2 букв.При написании 1 буквы в вывод не включаются оба сбоя.
import java.util.Scanner;
public class ValidatePassword {
public static void main(String[] args) {
String inputPassword;
Scanner input = new Scanner(System.in);
System.out.print("Password: ");
inputPassword = input.next();
System.out.println(PassCheck(inputPassword));
System.out.println("");
}
public static String PassCheck(String Password) {
String result = "Valid Password";
int length = 0;
int numCount = 0;
int capCount = 0;
for (int x = 0; x < Password.length(); x++) {
if ((Password.charAt(x) >= 47 && Password.charAt(x) <= 58) || (Password.charAt(x) >= 64 && Password.charAt(x) <= 91) ||
(Password.charAt(x) >= 97 && Password.charAt(x) <= 122)) {
} else {
result = "Password Contains Invalid Character!";
}
if ((Password.charAt(x) > 47 && Password.charAt(x) < 58)) {
numCount++;
}
if ((Password.charAt(x) > 64 && Password.charAt(x) < 91)) {
capCount++;
}
length = (x + 1);
}
if (numCount < 2) {
result = "Not Enough Numbers in Password!";
}
if (capCount < 2) {
result = "Not Enough Capital Letters in Password!";
}
if (length < 2) {
result = "Password is Too Short!";
}
return (result);
}
}