/
v.nilov
/
Zadanie10
Обзор
Документация
Войти
/
v.nilov
/
Zadanie10
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
TodoManager.java
156 строк
6 KB
v.nilov
Zadanie10
17 ноя 2025, 23:52
17 ноя 2025, 23:52
72ae234
Код
Авторство
О чём код?
import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class TodoManager { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); List<String> tasks = new ArrayList<>(); while (true) { printMenu(); System.out.print("Ваш выбор: "); try { int choice = Integer.parseInt(scanner.nextLine()); switch (choice) { case 0: System.out.println("Выход из программы. До свидания!"); return; case 1: addTask(scanner, tasks); break; case 2: showTasks(tasks); break; case 3: deleteTaskByNumber(scanner, tasks); break; case 4: deleteTaskByText(scanner, tasks); break; case 5: deleteTasksByKeyword(scanner, tasks); break; default: System.out.println("Неверный выбор! Попробуйте снова."); } if (choice != 0) { System.out.println("Ваш список дел:"); showTasks(tasks); System.out.println(); } } catch (NumberFormatException e) { System.out.println("Ошибка! Введите число от 0 до 5."); } } } private static void printMenu() { System.out.println("Выберите операцию:"); System.out.println("0. Выход из программы"); System.out.println("1. Добавить дело"); System.out.println("2. Показать дела"); System.out.println("3. Удалить дело по номеру"); System.out.println("4. Удалить дело по названию"); System.out.println("5. Удалить дела по ключевому слову"); } private static void addTask(Scanner scanner, List<String> tasks) { System.out.print("Введите название задачи: "); String task = scanner.nextLine().trim(); if (task.isEmpty()) { System.out.println("Название задачи не может быть пустым!"); return; } if (tasks.contains(task)) { System.out.println("Такое дело уже существует в списке!"); return; } tasks.add(task); System.out.println("Добавлено!"); } private static void showTasks(List<String> tasks) { if (tasks.isEmpty()) { System.out.println("Список дел пуст."); return; } for (int i = 0; i < tasks.size(); i++) { System.out.println((i + 1) + ". " + tasks.get(i)); } } private static void deleteTaskByNumber(Scanner scanner, List<String> tasks) { if (tasks.isEmpty()) { System.out.println("Список дел пуст. Нечего удалять."); return; } System.out.print("Введите номер для удаления: "); try { int number = Integer.parseInt(scanner.nextLine()); if (number < 1 || number > tasks.size()) { System.out.println("Нет дела с таким номером!"); return; } String removedTask = tasks.remove(number - 1); System.out.println("Удалено: " + removedTask); } catch (NumberFormatException e) { System.out.println("Ошибка! Введите корректный номер."); } } private static void deleteTaskByText(Scanner scanner, List<String> tasks) { if (tasks.isEmpty()) { System.out.println("Список дел пуст. Нечего удалять."); return; } System.out.print("Введите задачу для удаления: "); String taskToDelete = scanner.nextLine().trim(); if (tasks.remove(taskToDelete)) { System.out.println("Удалено!"); } else { System.out.println("Нет дела с таким названием!"); } } private static void deleteTasksByKeyword(Scanner scanner, List<String> tasks) { if (tasks.isEmpty()) { System.out.println("Список дел пуст. Нечего удалять."); return; } System.out.print("Введите ключевое слово для удаления: "); String keyword = scanner.nextLine().trim().toLowerCase(); if (keyword.isEmpty()) { System.out.println("Ключевое слово не может быть пустым!"); return; } int initialSize = tasks.size(); tasks.removeIf(task -> task.toLowerCase().contains(keyword)); int removedCount = initialSize - tasks.size(); if (removedCount > 0) { System.out.println("Удалено задач: " + removedCount); } else { System.out.println("Не найдено задач с ключевым словом: " + keyword); } } }