2017-01-09 7 views
0

Я делаю программу, которая добавляет участников, результаты для участников и события из спортивных соревнований. Я хочу иметь возможность распечатывать все результаты для каждого события, записывая имя события как команду. Затем программа должна найти событие в моем arrayList и посмотреть, существует ли он, если он распечатывает результаты. У меня есть метод для поиска arraylist для события, но у меня есть проблема с использованием метода в качестве команды. Я знаю, что было бы проще использовать обычный, например, event result или что-то, а затем добавлять туда методы, но это требование, чтобы вы с помощью команды искали события в списке.Как добавить метод поиска как ввод команды

boolean running = true; 
while(running) { 
    System.out.print("Command> "); 
    String cmd = readString().toLowerCase(); 
    if (cmd.equals("message")) printMessage(); 
    else if (cmd.equals("add participant")) addParticipant(); 
    else if (cmd.equals("check participant")) listParticipant(); 
    else if (cmd.equals("remove participant")) removeParticipant(); 
    else if (cmd.equals("add result")) addResult(); 
    else if (cmd.equals("participant")) listParticipantResult(); 
    -> //else if (cmd.equals(findEvent()) listEvent(); 
    else if (cmd.equals("end")) { 
     System.out.println("Exit!"); 
     running = false; 
    } else System.out.println("Wrong command!"); 

} 
+0

Вы должны добавить пример команды, которую вы можете ввести и методы, которые должны быть названы (или, как использовать метод проведения поиска) , Пока что мы можем предположить только для некоторого шаблона. – AxelH

ответ

1

Предполагая, что ваша команда будет именем события напрямую. ех. SportTornament

// Above all if else 
    //assuming cmd will be directly your event name. search for event name in eventList if it exists then call findEvent method with eventName(here it will be cmd) as parameter. 

    } else if (eventList.contains(cmd)) { 
     findEvent(cmd); 
    } 

Предполагая, что ваша команда найдет

//Above all if else 
    //split the input as find saparate and other remaining string as eventName 
    } else if (cmd.startsWith("find")) { 
     String eventName = cmd.substring(4, cmd.length()); 
     findEvent(eventName); 
    } 
1

Как вы сказали, если вы хотите, чтобы искать название события, и вы ожидаете команда, чтобы выглядеть следующим образом: «найти yourEventName», то все, что вам нужно, чтобы в последнем else if заявления заключается в проверке команда «find yourEventName», а затем разделить эту строку и получить только «yourEventName». Когда у вас есть это, просто вызовите свой метод findEvent() с именем события в качестве параметра и сделайте в этом методе все, что хотите, с этим событием, если вы его найдете. Пример:

else if (cmd.equals("find yourEventName")) { 
    String eventName = cmd.split(" ")[1]; 
    findEvent(eventName); 
} 

Надеюсь, это поможет.

Смежные вопросы