/
sc0rpi0n2001
/
HW_EXC
Обзор
Документация
Войти
/
sc0rpi0n2001
/
HW_EXC
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
PasswordChecker.java
52 строки
2 KB
sc0rpi0n2001
upload files
09 фев 2025, 15:43
09 фев 2025, 15:43
4c868e7
Код
Авторство
О чём код?
public class PasswordChecker { private int minLength; //минимальная длина пароля private int maxRepeats; // максимально допустимое количество повторений символа подряд public void setMinLength(int minLength) { if (minLength <= 0) { throw new IllegalArgumentException("Минимальная длина пароля должна быть больше 0," + " вы ввели длину: " + minLength); } this.minLength = minLength; } public void setMaxRepeats(int maxRepeats) { if (maxRepeats <= 0) { throw new IllegalArgumentException("Минимальное значение должно быть больше 0," + " вы ввели: " + maxRepeats); } this.maxRepeats = maxRepeats; } public boolean verify(String password) { if (minLength <= 0) { throw new IllegalStateException("Не установлена минимальная длина пароля"); } if (maxRepeats <= 0) { throw new IllegalStateException("Не установлено максимально количество повторений символа подряд"); } if (password.length() < minLength) { return false; } for (int i = 0; i < password.length() - maxRepeats; i++) { int repeatCount = 1; for (int j = i + 1; j < password.length(); j++) { if (password.charAt(i) != password.charAt(j)) { break; } repeatCount++; if (repeatCount > maxRepeats) { System.out.printf("Символ %c повторяется больше %d раз\n", password.charAt(i), maxRepeats); return false; } } } return true; } }