2017-01-09 10 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声明INにするために必要なすべてのかどうかをチェックすることですコマンドは "find yourEventName"であり、そのStringを分割して "yourEventName"だけを取得します。もしあなたがそれを持っているのであれば、あなたのメソッドfindEvent()をパラメータとしてイベント名で呼び出して、そのメソッドで見つけたらそのイベントで何でもしてください。このように:

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

希望します。

関連する問題