Создать список дел, который управляется командами в консоли

Есть вот такой код:

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;

public class Main
{
    public static void main(String[] args)
    {
        String deals;
        String nameOfList;
        String deleteList;
        int deleteDeal;
        System.out.println("Выберите действие и введите код команды: "
                + "\n1 - ADD"
                + "\n2 - EDIT"
                + "\n3 - DELETE"
                + "\n4 - LIST");
        Scanner scanner = new Scanner(System.in);
        List<String> todoList = new LinkedList<>();
        todoList.add(0,"Найти деньги");
        todoList.add(1,"Попросить у кого-то деньги");
        todoList.add(2,"Заработать деньги");
        todoList.add(3,"Украсть у кого-то деньги");
        todoList.add(4,"Напечатать деньги самому");
        String str = "ADD";
        String str1 = "EDIT";
        String str2 = "DELETE";
        String str3 = "LIST";
        if (scanner.hasNext(str)) {
            String addList = scanner.nextLine();
            System.out.println("Вы добавили новое дело: \"" + addList + "\"");
            todoList.add(addList);
            for (String edit : todoList){
                System.out.println(edit);
            }
        }
        if (scanner.hasNext(str1)) {
            System.out.println("Введите номер дела, которое хотите отредактировать");
            nameOfList = scanner.nextLine();
            todoList.add(nameOfList);
            todoList.remove(nameOfList);
            int deleteList1 = Integer.parseInt(scanner.nextLine());
            System.out.println("Введите новое дело");
            String editList1 = scanner.nextLine();
            System.out.println("Вы отредактировали дело.");
            deleteDeal = deleteList1;
            todoList.set(deleteDeal - 1, editList1);
        }
        if (scanner.hasNext(str2)){
            System.out.println("Введите номера дела, которое хотите удалить");
            deleteList = scanner.nextLine();
            todoList.remove(deleteList);
            int deleteList1 = Integer.parseInt(scanner.nextLine());
            System.out.println("Вы удалили дело № " + deleteList1);
            deleteDeal = deleteList1;
            todoList.remove(deleteDeal - 1);
        }
        if (scanner.hasNext(str3)){
            for (String edit : todoList){
                System.out.println(edit);
            }
        }
    }
}

Нужно сделать так, чтоб команды писались в одну строчку. К примеру:
"EDIT 5 Придумать нормальный список дел
После консоль бы выдавала:
Найти деньги
Попросить у кого-то деньги
Заработать деньги
Придумать нормальный список дел
Напечатать деньги самому."

Я не понимаю как можно это реализовать.

//Знаю, что небольшие проблемы с командой ADD. Они будут исправлены чуть позже:)//


Ответы (3 шт):

Автор решения: Антоша
 public static void main(String[] args)
    {
        String deals;
        String nameOfList;
        String deleteList;
        int deleteDeal;
        System.out.println("Выберите действие и введите код команды: 1 - ADD 2 - EDIT 3 - DELETE4 - LIST");
        System.out.println("Найти деньги");
        System.out.println("Попросить у кого-то деньги");
        System.out.println("Заработать деньги");
        System.out.println("Украсть у кого-то деньги");
        System.out.println("Напечатать деньги самому");
        Scanner scanner = new Scanner(System.in);
        List<String> todoList = new LinkedList<>();

Но не в деньгах счастье, уж поверьте

Результат

→ Ссылка
Автор решения: Юлия

Вдруг кому будет интересно:

public static ArrayList<String> deeds = new ArrayList<>() {{
        add("Найти деньги");
        add("Попросить у кого-то деньги");
        add("Заработать деньги");
        add("Украсть у кого-то деньги");
        add("Напечатать деньги самому");
    }};

    public static String comm(String[] string) {
        return string[0].trim();
    }

    public static int ind(String[] string) {
        return Integer.parseInt(string[1].trim());
    }

    public static String scanDeed(String[] string, int index) {
        StringBuilder sb = new StringBuilder();
        for (int i = index; i < string.length; i++) {
            sb.append(string[i]).append(" ");
        }
        return sb.toString().trim();
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = " ";

        while (!str.equals("EXIT")) {
            System.out.println("Введите команду или \"EXIT\" для завершения: ");
            str = scanner.nextLine();
            String[] commands = str.split("\\s+");

            String command = " ";
            String deed = null;
            int index = -1;

            if (str.matches("^[\\p{Upper}]+")) {
                command = str.trim();

            } else if (str.matches("^[\\p{Upper}]+\\s+\\d+")) {
                command = comm(commands);
                index = ind(commands);

            } else if (str.matches("^[\\p{Upper}]+\\s+\\d+.+")) {
                command = comm(commands);
                index = ind(commands);
                deed = scanDeed(commands, 2);

            } else if (str.matches("^[\\p{Upper}]+.+")) {
                command = comm(commands);
                deed = scanDeed(commands, 1);

            } else {
                System.out.println("Неверная команда.");
            }

            switch (command) {

                case ("LIST"):
                    System.out.println("Список дел:");
                    for (int i = 0; i < deeds.size(); i++) {
                        System.out.println("Работа номер: " + i + " " + deeds.get(i));
                    }
                    break;

                case ("ADD"):
                    if (index > -1 && index < deeds.size()) {
                        deeds.add(index, deed);
                        System.out.println("Добавлена работа \"" + deed + "\" с индексом " + index);
                    } else if (index > deeds.size()) {
                        System.out.println("Укажите индекс не более " + (deeds.size() - 1));
                    } else {
                        deeds.add(deed);
                    }
                    break;

                case ("EDIT"):
                    if (index > -1 && index < deeds.size()) {
                        deeds.set(index, deed);
                        System.out.println("Работа под индексом " + index + " изменена на \"" + deed + "\"");
                    } else {
                        System.out.println("Неверная команда. Укажите индекс редактируемого дела" +
                                " значением не более " + (deeds.size() - 1));
                    }
                    break;

                case ("DELETE"):

                    if (index > -1 && index < deeds.size()) {
                        deeds.remove(index);
                        System.out.println("Работа с индексом " + index + " удалена");
                    } else {
                        System.out.println("Неверная команда. Укажите индекс удаляемого дела" +
                                " значением не более " + (deeds.size() - 1));
                    }
                    break;
                case ("EXIT"):
                    System.out.println("Работа завершена.");
                    break;

                default:
                    System.out.println("Такой команды нет. \nДоступные команды: LIST, ADD, EDIT, DELETE.");
            }
        }
    }
→ Ссылка
Автор решения: Airat

Вот вариант решения

import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        System.out.println("Список команд: \nLIST — выводит дела с их порядковыми номерами;" +
                "\nADD — добавляет дело в конец списка или дело на определённое место, сдвигая остальные дела вперёд, если указать номер;" +
                "\nEDIT — заменяет дело с указанным номером; \nDELETE — удаляет; \nВызовите команду:");
        Scanner scanner = new Scanner(System.in);
        ArrayList<String> todoList = new ArrayList<>() {{
            add(0, "Позавтракать");
            add(1, "Умыться");
            add(2, "Почитать книгу");
            add(3, "Поработать");
            add(4, "Пообедать");
        }};

        while (true) {
            String comanda = scanner.nextLine();
            String[] naSlova = comanda.split(" ");
            for (int i = 0; i < naSlova.length; i++) {
                if (naSlova[i].equals("LIST")) {
                    for (int j = 0; j < todoList.size(); j++) {
                        System.out.println(todoList.get(j));
                    }
                } else if (naSlova[0].equals("ADD") && naSlova.length == 2) {
                    todoList.add(naSlova[1]);
                    System.out.println("Вы добавили новое дело в конец списка:");
                    for (int j = 0; j < todoList.size(); j++) {
                        System.out.println(todoList.get(j));
                    }
                    break;
                } else if (naSlova[0].equals("ADD") && naSlova.length > 2) {
                    todoList.add(Integer.parseInt(naSlova[1]) - 1, naSlova[2]);
                    System.out.println("Вы добавили новое дело: " + naSlova[2] + ", в позицию номер: " + naSlova[1] + "\nИзмененный список дел:");
                    for (int j = 0; j < todoList.size(); j++) {
                        System.out.println(todoList.get(j));
                    }
                    break;
                } else if (naSlova[0].equals("EDIT") && naSlova.length == 3) {
                    todoList.set(Integer.parseInt(naSlova[1]) - 1, naSlova[2]);
                    System.out.println("Вы заменили дело в позиции номер: " + naSlova[1] + " на: " + naSlova[2] + "\nИзмененный список дел:");
                    for (int j = 0; j < todoList.size(); j++) {
                        System.out.println(todoList.get(j));
                    }
                    break;
                } else if (naSlova[0].equals("DELETE") && naSlova.length == 2) {
                    System.out.println("Вы удалили дело " + todoList.get(Integer.parseInt(naSlova[1]) - 1) + ", которое было в позиции номер: " + naSlova[1] + "\nИзмененный список дел:");
                    todoList.remove(Integer.parseInt(naSlova[1]) - 1);
                    for (int j = 0; j < todoList.size(); j++) {
                        System.out.println(todoList.get(j));
                    }
                    break;
                } else {
                    System.out.println("Не верная команда. Вызовите правильну команду:");
                }
                break;
            }
        }
    }
}
→ Ссылка