/
RazmikAr
/
homework11
Обзор
Документация
Войти
/
RazmikAr
/
homework11
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
PasswordChecker.java
46 строк
2 KB
RazmikAr
Homework11
21 дек 2025, 12:24
21 дек 2025, 12:24
4dc204e
Код
Авторство
О чём код?
class PasswordChecker{ private int minLength = -1; // Мин. длина пароля (-1 это нет лимита) private int maxRepeats = -1; // Макс. кол-во повторений символа подряд (-1 это нет лимита) //настройка длины пароля public void setMinLength(int length) throws IllegalArgumentException { if (length <= 0) { throw new IllegalArgumentException("Минимальная длина пароля должна быть положительной "); } this.minLength = length; } //настройка повторений символов пароля public void setMaxRepeats(int repeatLim) throws IllegalArgumentException { if (repeatLim <= 0) { throw new IllegalArgumentException("Количество повторяющихся символов должно быть положительным"); } this.maxRepeats = repeatLim; } //проверка надежности пароля public boolean verify(String password) throws IllegalStateException { if (this.minLength == -1 || this.maxRepeats == -1) { throw new IllegalStateException("Необходимо настроить обе опции"); } // Проверка мин длины if (password.length() < minLength) { return false; } // Проверка макс повторений символа for (int i = 0; i < password.length();) { char x = password.charAt(i); int j = i + 1; while (j < password.length() && password.charAt(j) == x) { j++; } if ((j - i) > this.maxRepeats) { return false; } i = j; } return true; } }