У меня есть этот код, который проходит через ArrayList<>
и проверяет, соответствует ли добавленная информация о клиенте критериям программы. У меня все это работает, мой вопрос заключается в том, как мне напечатать сообщение JOptionPane в конце кода, отображающего каждую ошибку в одном сообщении, вместо печати нескольких сообщений JOptionPane после каждой проверки. Я хотел бы, чтобы все эти отдельные сообщения были в одном большом сообщении в конце, если входные данные не были равны операторам if
.
for(Customer c : customerCopy){
//checking is username entered equals a username already in the file
if(c.getUserName().equals(userTextStr))
sameUserName = true;
if(sameUserName)
JOptionPane.showMessageDialog(null, "User name already taken");
}
//checking if both passwords that are entered match each other
if(!passStr.equals(passStr2))
JOptionPane.showMessageDialog(null, "Passwords don't match");
//checking if the password length is within the valid range
if(passStr.length() < 8 || passStr.length() > 10)
JOptionPane.showMessageDialog(null, "Password invalid length");
boolean hasUpperCase = !passStr.equals(passStr.toLowerCase());
boolean hasLowerCase = !passStr.equals(passStr.toUpperCase());
boolean hasInteger = false;
for(int i = 0; i < passStr.length(); i++)
if(Character.isDigit(passStr.charAt(i)))
hasInteger = true;
//checking to see if password contains an uppercase letter
if(!hasUpperCase)
JOptionPane.showMessageDialog(null, "Password must contain an uppercase letter");
//checking to see if password contains a lowercase letter
if(!hasLowerCase)
JOptionPane.showMessageDialog(null, "Password must contain a lowercase letter");
//checking to see if the password contains a number
if(!hasInteger)
JOptionPane.showMessageDialog(null, "Password must contain a number");//PUT ONE LARGE ERROR MESSAGE AT THE END