Stack Overflow на русском Asked by Andrew_the_seaman on November 5, 2021
Cтолкнулся с проблемой при выполнении задачи: не могу реализовать методы коллекции List в соответствие с условиями задачи. Прошу помочь разобраться в ошибках и предложить решения, если это возможно!
Условия задачи:
Используя Scanner scanner = new Scanner(System.in) и scanner.nextLine(), в бесконечном цикле необходимо последовательно получить названия дел или слово end.Если не введено слово end, то сохраните введенное значение в переменную task типа String String task = scanner.nextLine() и добавьте его в список list. Если введено слово end, то используя конструкцию for (String task : list ), выводим задачи в консоль. Можно также вывести и индекс, иcпользуя локальный счетчик.
После вывода списка дел в консоль, программа дает пользователю возможность удалить из списка определенное дело по индексу. Это происходит в бесконечном цикле, пока пользователь не введет ключевое слово "Finish".
Добавьте проверку, равно ли введенное значение условию для выхода из цикла — строке Finish.
Используя метод ArrayList remove(int index), удалите дело из списка. Обратите внимание, что необходимо будет перевести String в int.
Если введено слово Finish, то, используя конструкцию for (String task : list), выведите задачи в консоль вместе с индексом. Убедитесь, что дело корректно удалилось из списка и индексы были сдвинуты влево.
Вот мой код:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ArrayList<String> list = new ArrayList<>();
while(true) {
System.out.println("Введите название задачи (для завершения введите 'end'):");
System.out.println("1. Добавить задачуn2. Вывести список задачn3. Удалить задачуn0. Выход");
String input = scanner.nextLine();
if (input.equals("1")) {
System.out.println("Введите задачу для планирования:");
String task = scanner.nextLine();
list.add(task);
} else if (input.equals("2")) {
System.out.println("Список задач:n" + list);
scanner.nextLine();
} else if (input.equals("Finish")) {
int task = Integer.parseInt(task);
} else if (input.equals("end")) {
for (String task : list) {
}
}
}
Попробуйте так:
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
private final static List<String> CASES = new ArrayList<>();
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("Введите название задачи (для завершения введите 'end'):");
String input = scanner.nextLine();
if ("end".equals(input)) {
for (int i = 0; i < CASES.size(); i++) System.out.println(i + " -> " + CASES.get(i));
System.out.println("Введите индекс для удаления задачи либо нажмите любую кнопку для продолжения : ");
removeIfExist(scanner.nextLine());
continue;
}
if ("Finish".equals(input)) break;
CASES.add(input);
}
}
private static boolean removeIfExist(String index) {
try {
int i = Integer.valueOf(index);
CASES.remove(i);
return true;
} catch (NumberFormatException | IndexOutOfBoundsException e) {
return false;
}
}
}
Answered by Дмитрий on November 5, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP