2017-01-09 71 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); 
} 

希望這會有所幫助。

相關問題