/
itokar98
/
HomeWorkEXC
Обзор
Документация
Войти
/
itokar98
/
HomeWorkEXC
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/PasswordChecker.java
46 строк
2 KB
Ilya Tokar
first_commit
11 июл 2025, 17:49
11 июл 2025, 17:49
c4ab986
Код
Авторство
О чём код?
public class PasswordChecker { private int minLength = 2; private int maxRepeats = 2; public void setMinLength(int length) throws IllegalArgumentException { if (length <= 0) { // Проверка корректности введённого значения throw new IllegalArgumentException("Минимальная длина пароля должна быть положительным числом."); } this.minLength = length; } public void setMaxRepeats(int repeats) throws IllegalArgumentException { if (repeats <= 0) { // Проверка корректности введённого значения throw new IllegalArgumentException("Максимальное количество повторений символа подряд должно быть больше нуля."); } this.maxRepeats = repeats; } /** * Метод проверки пароля на соответствие установленным критериям. */ public boolean verify(String password) throws IllegalStateException { if (minLength == -1 || maxRepeats == -1) { throw new IllegalStateException("Необходимо задать минимальное количество символов и максимальное количество повторений символа подряд."); } // Критерий №1: Длина пароля >= установленной минимальной длине if (password.length() < minLength) return false; // Критерий №2: Количество повторений каждого символа подряд <= установленного максимума for (int i = 0; i < password.length(); ) { char currentChar = password.charAt(i); int count = 0; while ((i + count) < password.length() && password.charAt(i + count) == currentChar) { count++; } if (count > maxRepeats) return false; i += count; } return true; } }