/
sc0rpi0n2001
/
HW_LIST
Обзор
Документация
Войти
/
sc0rpi0n2001
/
HW_LIST
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
ToDoList.java
98 строк
4 KB
sc0rpi0n2001
upload files
23 фев 2025, 22:58
23 фев 2025, 22:58
f7e2cd6
Код
Авторство
О чём код?
import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ToDoList { List<String> toDo = new ArrayList<>(); public void addToDo(String work) { if (work.isBlank()) { System.out.println("Название задачи должно содержать текст.\n\n"); return; } toDo.add(work.trim()); System.out.println("Добавлено!"); } public void delToDo(int pos) { if (pos > toDo.size() - 1 | pos < 0) { //удалил try-catch, заменил на условный оператор System.out.println("Задача с таким номером не существует.\n\n"); return; } toDo.remove(pos); System.out.println("Удалено!\n\n"); } public void showWork() { if (toDo.isEmpty()) { System.out.println("У вас нет запланированных дел.\n\n"); } else { System.out.println("Ваш список дел:"); for (int i = 0; i < toDo.size(); i++) { //заменил на цикл со счетчиком System.out.printf("%d. %s\n", i + 1, toDo.get(i)); } System.out.println(); } } public void deleteWorkByExactName(String work) { boolean sucsess = false; if (work.isBlank()) { System.out.println("Название задачи должно содержать текст.\n\n"); return; } //убрал удаление через поиск индекса и метод delToDo //использовал цикл с итератором, чтобы можно было удалить несколько задач с одинаковым названием Iterator<String> iterator = toDo.listIterator(); while (iterator.hasNext()) { String currentWork = iterator.next(); if (currentWork.equals(work)) { iterator.remove(); } sucsess = true; } if (sucsess) { System.out.println("Удалено!\n\n"); } else { System.out.println("Задача с таким названием не найдена."); } } public void deleteWorkByKeyName(String keyWord) { List<String> toDelete = new ArrayList<>(); //добавил проверку, что введено одно слово if (keyWord.contains(" ") | keyWord.isBlank()) { System.out.println("Нужно ввести одно ключевое слово."); return; } //собрал все удаляемые задачи в один список for (String work : toDo) { String[] toCompare = work.split(" "); for (String word : toCompare) { if (word.equalsIgnoreCase(keyWord.trim())) { toDelete.add(work); } } } // удаляю собранные задачи из исходного списка через removeAll if (toDo.removeAll(toDelete)) { System.out.printf("Количество удаленных задач: %d\n", toDelete.size()); } else { System.out.printf("Задач, содержащих ключевое слово '%s' не найдено\n", keyWord); } } }