/
kai_mai
/
ExceptionStacktraceTask
Обзор
Документация
Войти
/
kai_mai
/
ExceptionStacktraceTask
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
PasswordChecker.java
69 строк
2 KB
Катя Майборода
upload files
20 ноя 2025, 21:38
20 ноя 2025, 21:38
019ae0e
Код
Авторство
О чём код?
public class PasswordChecker { private int minLength = -1; private int maxRepeats = -1; /** * Минимальная длина пароля * * @param minLength */ public void setMinLength(int minLength) { if (minLength < 0) { throw new IllegalArgumentException("Минимальная длина пароля не должна быть отрицательной:" + minLength); } this.minLength = minLength; } /** * Максимальное количество повторений одного символа подряд * * @param maxRepeats */ public void setMaxRepeats(int maxRepeats) { if (maxRepeats <= 0) { throw new IllegalArgumentException("Максимально допустимое количество повторений символа подряд не должно быть отрицательным:" + maxRepeats); } this.maxRepeats = maxRepeats; } public boolean verify(String password) { if (minLength == -1 || maxRepeats == -1) { throw new IllegalArgumentException("Необходимо заполнить миню длину и макс. число повторений"); } if (password.length() < minLength) { return false; } // Проверка повторений символа подряд // char prev = password.charAt(0); // int repeats = 1; // for (int i = 1; i < password.length(); i++) { // char cur = password.charAt(i); // if (cur == prev) { // repeats++; // if (repeats > maxRepeats) { // return false; // } // } else { // prev = cur; // repeats = 1; // } // } // return true; 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; } }