Нужно изменить этот код с помощью switch case

96
27 марта 2022, 09:00
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        ArrayList <String> toDoList = new ArrayList<>();
        System.out.println("Введите команду (Add (№) дело, delete №, edit № дело, list).");
        while(true){
            Scanner scanner = new Scanner(System.in);
            String str = scanner.nextLine();
            String [] words = str.split("\\s");
            if (words.length == 1){
                for (int i = 0; i < toDoList.size(); i++){
                    System.out.println(i + " " + toDoList.get(i));
                }
            }
            else{
                String index = words[1].replaceAll("[^0-9]", "");
                String item = str.substring(str.indexOf(' ')).trim();
                if (words.length == 2) {
                    if (words[0].equalsIgnoreCase("DELETE")){
                        int indexValue = Integer.parseInt(index);
                        if (indexValue >= toDoList.size()){
                            System.out.println("Номер дела введён неверно!");
                        }
                        else {
                            toDoList.remove(indexValue);
                        }
                    }
                    else if(words[0].equalsIgnoreCase("ADD")){
                        toDoList.add(item);
                    }
                }
                else if (words.length > 2){
                    String itemWOIndex = item.substring(item.indexOf(' ')).trim();
                    if (index.isEmpty()){
                        toDoList.add(item);
                    }
                    else {
                        int indexValue = Integer.parseInt(index);
                        if (words[0].equalsIgnoreCase("ADD")){
                            if (indexValue >= toDoList.size()){
                                toDoList.add(itemWOIndex);
                            }
                            else if (indexValue < toDoList.size()) {
                                toDoList.add(indexValue, itemWOIndex);
                            }
                            else{
                                toDoList.add(item);
                            }
                        }
                        else if (words[0].equalsIgnoreCase("EDIT")){
                            if (indexValue > toDoList.size()){
                                System.out.println("Номер дела введён неверно!");}
                            else {
                                toDoList.remove(indexValue);
                                toDoList.add(indexValue, itemWOIndex);
                            }
                        }
                    }
                }
            }
        }
    }
}
Answer 1
switch(words.length) {
  case 0:
    break;
  case 1:
    ...
    break;
  case 2:
    ...
    break;
  default:
    ...
}
READ ALSO
Если equals для String, тогда почему == для null?

Если equals для String, тогда почему == для null?

Известно, что ссылочные типы необходимо сравнивать с помощью equalsЕсть нюансы, что для Integer в диапазоне от -128 до 127 сравнение происходит с помощью...

225
PHP отправить PUT запрос

PHP отправить PUT запрос

Как через PHP CURL отправить данный запрос PUT

104
Поочередность SQL транзакций

Поочередность SQL транзакций

Использую MYSQLiЕсть такая проблема, при выполнении SQL транзакций иногда появляется ошибка: Deadlock found when trying to get lock; try restarting transaction

109
Php передача csv файла пользователю

Php передача csv файла пользователю

Мне нужно с базы данных сделать выборку и сформировать файл и предложить пользователю его сохранитьС базы данных возвращается двумерный...

212