/
Anastasia_Vlasova
/
passwordChecker
Обзор
Документация
Войти
/
Anastasia_Vlasova
/
passwordChecker
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
PasswordChecker.java
50 строк
2 KB
Anastasia_Vlasova
hw
17 апр 2025, 20:37
17 апр 2025, 20:37
cc4011f
Код
Авторство
О чём код?
public class PasswordChecker { protected int minLength = -1; protected int maxRepeats; public static final String NO_MIN_LENGTH_EXCEPTION_TEXT = "Не задано минимальное количество символов"; public static final String NO_MAX_REPEATS_EXCEPTION_TEXT = "Не задано"; public static final String BAD_MIN_LENGTH_EXCEPTION_TEXT = "Некорректное минимальное количество символов в пароле"; public static final String BAD_MAX_REPEATS_EXCEPTION_TEXT = "Некорректное максимальное число повторений символа"; public void setMinLength(int minLength) { if (minLength < 0) { throw new IllegalArgumentException(BAD_MIN_LENGTH_EXCEPTION_TEXT); } this.minLength = minLength; } public void setMaxRepeats(int maxRepeats) { if (maxRepeats <= 0) { throw new IllegalArgumentException(BAD_MAX_REPEATS_EXCEPTION_TEXT); } this.maxRepeats = maxRepeats; } boolean verify(String password) { if (minLength == -1) { throw new IllegalStateException(NO_MIN_LENGTH_EXCEPTION_TEXT); } if (maxRepeats == 0) { throw new IllegalStateException(NO_MAX_REPEATS_EXCEPTION_TEXT); } if (password.length() < minLength) { return false; } int count = 1; for (int i = 1; i < password.length(); i++) { if (password.charAt(i) == password.charAt(i - 1)) { count++; if (count > maxRepeats) { return false; } } else { count = 1; } } return true; } }