проверка паролей java со специальными символами

#java #methods #boolean #passwords #password-checker

Вопрос:

Я очень новичок в Java, поэтому, пожалуйста, потерпите меня. Мое задание: Попросите пользователя ввести пароль и напишите сообщение о том, приемлемо это или нет. Требования к паролю:

  1. длина пароля не менее 8 символов
  2. он имеет заглавные и строчные буквы
  3. по крайней мере, за одной буквой следует цифра
  4. в нем есть один из специальных символов $#?!_-=%

Я действительно не знаю, что теперь делать с номерами 3 и 4. Я кое-что читал о регулярных выражениях, но у нас даже этого не было в классе. существуют ли какие-либо другие возможные методы?

Комментарии:

1. Вы уже написали какой-нибудь код?

2. Это regex (расшифровывается как регулярное выражение), и вам это действительно не нужно. Это в основном цикл for, пользовательский ввод и некоторые операторы if.

Ответ №1:

Для номера 3 вы можете использовать цикл. Внутри него вы можете поймать каждую букву с помощью метода isLetter (), а затем проверить следующий элемент вашего массива методом isDigit()

 boolean isLetterFollowedByNumber; for (int[] a : nameOfYourArray) {  if (Character.isLetter(array[i]) amp;amp; Character.isLetter(array[i])) {  isLetterFollowedByNumber = true;  } }  

Для числа 4 вы можете просто сравнить каждый элемент вашего массива символов со специальными символами

 boolean hasCharacter; for (int[] a : nameOfYourArray) {  if (a == '

Оба моих примера включают цикл "для каждого", но вы также можете использовать цикл "для". Удачи вам в выполнении вашего задания!



|| a == '#' || a == '?' || a == '!' || a == '_'- || a == '=' || a == '%') { hasCharacter = true; } }
Оба моих примера включают цикл «для каждого», но вы также можете использовать цикл «для». Удачи вам в выполнении вашего задания!