/
Krygant
/
ToDoList2
Обзор
Документация
Войти
/
Krygant
/
ToDoList2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
ToDoList2.java
138 строк
5 KB
Антон Крыгин
upload files
23 мар 2025, 13:30
23 мар 2025, 13:30
850f791
Код
Авторство
О чём код?
import java.util.*; public class ToDoList2 { static List<String> list = new ArrayList<>(); public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (true) { showMenu(); int select = getUserInput(scanner); if (select == 0) { break; } handleUserSelection(scanner, select); } } private static int getUserInput(Scanner scanner) { int select = -1; while (true) { try { select = scanner.nextInt(); scanner.nextLine(); // Очистка буфера break; } catch (InputMismatchException e) { System.out.println("Введено неверное значение! Необходимо ввести номер операции!"); scanner.nextLine(); // Очистка буфера } } return select; } private static void handleUserSelection(Scanner scanner, int select) { switch (select) { case 1: System.out.print("Введите название задачи: "); String task = scanner.nextLine(); addTask(task); break; case 2: showTasks(); break; case 3: System.out.print("Введите номер для удаления: "); int numberToDelete = getUserInput(scanner); deleteTaskByNumber(numberToDelete); break; case 4: System.out.print("Введите задачу для удаления: "); String name = scanner.nextLine(); deleteTaskByName(name); break; case 5: System.out.print("Введите ключевое слово для удаления задач: "); String keyword = scanner.nextLine(); deleteTasksByKeyword(keyword); break; default: System.out.println("Неверный выбор. Пожалуйста, попробуйте снова."); } } private static void deleteTaskByName(String name) { String trimmedName = name.trim(); // Удаление пробелов в начале и конце boolean found = false; // Флаг для отслеживания, была ли задача найдена // Поиск задачи в списке for (String task : list) { if (task.equalsIgnoreCase(trimmedName)) { // Сравнение без учета регистра list.remove(task); found = true; System.out.println("Задача \"" + task + "\" удалена!"); break; // Выйти из цикла после удаления } } if (!found) { System.out.println("Такого дела нет!"); } showTasks(); } private static void deleteTaskByNumber(int index) { if (index <= 0 || index > list.size()) { System.out.println("Такого дела нет!"); return; } String removedTask = list.remove(index - 1); System.out.println("Удалено: " + removedTask); showTasks(); } private static void deleteTasksByKeyword(String keyword) { boolean isRemoved = false; Iterator<String> iterator = list.iterator(); while (iterator.hasNext()) { String task = iterator.next(); if (task.contains(keyword)) { iterator.remove(); // Удаляем задачу через итератор isRemoved = true; } } if (isRemoved) { System.out.println("Задачи, содержащие \"" + keyword + "\", удалены!"); } else { System.out.println("Задачи с ключевым словом \"" + keyword + "\" не найдены!"); } showTasks(); } public static void showMenu() { System.out.print("Выберите операцию:\n" + "0. Выход из программы\n" + "1. Добавить дело\n" + "2. Показать дела\n" + "3. Удалить дело по номеру\n" + "4. Удалить дело по названию\n" + "5. Удалить дела по ключевому слову\n" + "Ваш выбор: "); } public static void addTask(String task) { list.add(task); System.out.println("Добавлено: " + task); showTasks(); } public static void showTasks() { System.out.println("Ваш список дел: "); for (int i = 0; i < list.size(); i++) { System.out.println((i + 1) + ". " + list.get(i)); } System.out.println(); } }