/
KuznetcovVS
/
HW_Exception
Обзор
Документация
Войти
/
KuznetcovVS
/
HW_Exception
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
PasswordChecker.java
79 строк
3 KB
KuznetcovVS
Exception
11 мар 2025, 19:11
11 мар 2025, 19:11
1bd8656
Код
Авторство
О чём код?
import java.util.Scanner; public class PasswordChecker { private int minLength = -1; private int maxRepeats = -1; public void setMinLength(int minLength) { if (minLength < 0) { throw new IllegalArgumentException("Минимальная длина пароля не может быть отрицательной."); } this.minLength = minLength; } public void setMaxRepeats(int maxRepeats) { if (maxRepeats <= 0) { throw new IllegalArgumentException("Максимальное количество повторений должно быть положительным."); } this.maxRepeats = maxRepeats; } public boolean verify(String password) { if (minLength < 0 || maxRepeats < 0) { throw new IllegalStateException("Настройки проверки пароля не установлены."); } if (password.length() < minLength) { return false; } int repeatCount = 1; for (int i = 1; i < password.length(); i++) { if (password.charAt(i) == password.charAt(i - 1)) { repeatCount++; if (repeatCount > maxRepeats) { return false; } } else { repeatCount = 1; } } return true; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); PasswordChecker checker = new PasswordChecker(); try { System.out.print("Введите мин. длину пароля: "); int minLength = Integer.parseInt(scanner.nextLine()); checker.setMinLength(minLength); System.out.print("Введите макс. допустимое количество повторений символа подряд: "); int maxRepeats = Integer.parseInt(scanner.nextLine()); checker.setMaxRepeats(maxRepeats); while (true) { System.out.print("Введите пароль или end: "); String password = scanner.nextLine(); if (password.equals("end")) { System.out.println("Программа завершена"); break; } try { if (checker.verify(password)) { System.out.println("Подходит!"); } else { System.out.println("Не подходит!"); } } catch (IllegalStateException e) { System.out.println("Ошибка: " + e.getMessage()); break; } } } catch (IllegalArgumentException e) { System.out.println("Ошибка: " + e.getMessage()); } finally { scanner.close(); } } }