1

command parameter私のプログラムは、間にスペースを入れた" " の形式でユーザーのキーボード コマンドを読み取ります。次のコマンドが " " になるまで、個々のコマンドを実行し続けますexit。また、ユーザーが失敗した場合、プログラムはエラーを表示しますが、コマンドを要求し続けます (この機能は完了していないと思います)。

次のコードはこれを実装する良い方法ですか? コマンドやジャンク入力などでエンターキーを押すだけのユーザーを処理できますか? どちらかといえば、これを実装するより良い慣用的な方法があるかどうか知りたいです。

String command = "";
String parameter = "";
Scanner dataIn = new Scanner(System.in);

while (!command.equals("exit")) {
    System.out.print(">> ");

    command = dataIn.next().trim();
    parameter = dataIn.next().trim();
    //should ^ these have error handling?

    if (command.equals("dothis")) {
        //do this w/ parameter..
    } else if (command.equals("dothat")) {
        //do that w/ parameter..
    } //else if... {}
      else {
        system.out.println("Command not valid.");
    }
}

System.out.println("Program exited by user.");

注: 私は例外処理とは何かをまったく考えずにこのクラスを使用したので、その領域のポインターは大歓迎です :)

4

1 に答える 1

0

これは、入力ループを実装する簡単な方法です。

Scanner sc = new Scanner(System.in);

for (prompt(); sc.hasNextLine(); prompt()) {

    String line = sc.nextLine().replaceAll("\n", "");

    // return pressed
    if (line.length == 0) 
        continue;

    // split line into arguments
    String[] args = line.split(" ");    

    // process arguments
    if (args.length == 1) {
        if (args[0].equalsIgnoreCase("exit"))
            System.exit(0);
        if (args[0].equalsIgnoreCase("dosomething"))
            // do something
    } else if (args.length == 2) {
        // do stuff with parameters
    } 
}

prompt()ここでプロンプトを出力すると仮定します。

于 2012-09-12T22:32:32.743 に答える