Проект отслеживания задач Java CLIJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Проект отслеживания задач Java CLI

Сообщение Anonymous »

Я создаю проект CLI Task Tracker и в настоящее время работаю над структурой CLI, позволяющей принимать вводимые пользователем данные. Я использовал оператор переключения для получения входных данных от аргументов. У меня проблема в том, что я присвоил args[0] переменной с именем команда. Это условие в операторе переключения, позволяющее определить, какой регистр будет использоваться. Я не уверен, как распознавать случаи для строк, содержащих пробелы. Например, у меня есть команда «список» и команда «список готов», но когда я тестирую их, команда «список готов» никогда не читается из-за пробелов. Я пробовал использовать операторы if после операторов case, но ничего не заработало, и добавление операторов if в эти случаи кажется уродливым кодом или плохой практикой. Я планирую создавать методы для каждого случая в отдельном файле и думал, что, возможно, это поможет, но мне все равно нужно найти способ заставить оператор switch распознавать команду.

Код: Выделить всё

public class TaskTracker {
public static void main(String[] args) {
// Check if command is more than one string
if (args.length < 1) {
System.out.println("Please enter a command such as:    ");
return; // Removes the error message on empty input (What I Learned) Stops the main method from
// trying to access args[0]
}
// Store the command in a variable
String command = args[0].toLowerCase(); // Handles case-sensitive situations from user input (What I Learned)
// Switch statement
switch (command) {
case "add":
// FIXME
System.out.println("Task added successfully (ID: 1)");
break;
case "update":
System.out.println("TODO"); // FIXME
break;
case "delete":
System.out.println("TODO"); // FIXME
break;
case "mark-in-progress":
System.out.println("TODO"); // FIXME
break;
case "mark-done":
System.out.println("TODO"); // FIXME
break;
case "list":
System.out.println("TODO"); // FIXME
break;
case "list done":
System.out.println("list"); /* FIXME String with spaces are not being read from input */
break;
case "list todo":
System.out.println("TODO"); // FIXME
break;
case "list in-progress":
System.out.println("TODO"); // FIXME
break;
default:
System.out.println("Please enter a valid command:    ");

}

}
}
Я на правильном пути? Или мне стоит придумать новый подход? Я думал об использовании циклов while или for, но в этой ситуации они не имели бы большего смысла, чем оператор переключателя.


Подробнее здесь: https://stackoverflow.com/questions/798 ... er-project
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»