3

ユーザーが入力した場合、プロジェクトの簡単なコードを記述しようとしています

歩く 10

距離 = 10 として walk(distance) メソッドで「walk」コマンドを使用する必要があります。

while (!quit) {
Scanner in = new Scanner(System.in);
String input = in.nextLine();
// if (walk x is typed) {
walk(x);
}
}

java.util.scanner を使用していますが、もう 1 つの問題は、メソッド walk(int x) が int を使用しているため、文字列入力を int に変換する必要があることです。

しばらくウェブを検索しましたが、探しているものが見つかりませんでした (または理解できませんでした)。

とにかく私はあなたが私を助けることができれば感謝しますありがとう

最初の問題は修正されましたが、すべての回答に感謝し ますそしてオンラインでチェック

                    try {
                    Integer.parseInt(splitStrings[1]);
                    }
                    catch(NumberFormatException e) {
                    System.out.println("error: " + e);
                    }

まだ助けがありません(私はtry / catchが苦手です)ので、ユーザーが距離なしで歩くと、エラーメッセージを表示する必要があります。

わかりました私もそれを得ました単純なものを使用しました

            if ("walk".equals(splitStrings[0])) {
                if (splitStrings.length == 2) {
                int distance = Integer.parseInt(splitStrings[1]);
                Robot.walk(distance);
                }
                if (splitStrings.length != 2) {
                    System.out.println("Entry must be like walk 10");
                }
            }
4

6 に答える 6

7

文字列に対して split() メソッドを使用してみてください。文字列の配列を返します。例えば

String s = 'walk 10';
String[] splitStrings = s.split(" ")

10 にアクセスするには、次のようにします。

String distanceToWalk = splitStrings[1]

int に変換するには、Integer で parseInt() メソッドを使用します。

Integer.parseInt(distanceToWalk);

見る

  1. http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#split%28java.lang.String%29
  2. http://docs.oracle.com/javase/6/docs/api/java/lang/Integer.html#parseInt%28java.lang.String%29
于 2012-05-03T02:26:18.167 に答える
7

スペースで分割できます。その場合、数値は結果の配列の 2 番目の要素 (インデックス 1) になります。

Adam Liss からの次のコメントを編集します。

Integer x = Integer.parseInt(input.split(" ")[1])
于 2012-05-03T02:22:28.277 に答える
1

Integer.parseInt()次の方法を使用できます。

int distance = Integer.parseInt(input);
于 2012-05-03T02:22:36.240 に答える
0

試す:

String s = 1;
int i = Integer.parseInt(s); // returns 1
于 2012-05-03T02:23:15.687 に答える
0

文字列から整数部分を取り除くと仮定すると、たとえば、

「10」で「10を歩く」、次のようなものを使用してください

// say you've parsed the "number" portion into a variable "inputString"
int x;
x= Integer.parseInt(inputString);
于 2012-05-03T02:23:53.370 に答える
0

これを使用できます:

// For read the input
InputStreamReader streamReader = new InputStreamReader(System.in);
BufferedReader reader = new BufferedReader(streamReader);
String input = reader.readLine();

を使用したい場合Scannerは、

Scanner sc = new Scanner(System.in);
String input = sc.nextLine();

それで:

StringTokenizer st = new StringTokenizer(input);
if (st.countTokens == 2) { // Only for two tokens "walk 100", "return 10"
    String method = st.nextToken();
    if (method.equals("walk") { // if you have more methods like "walk"
        int distance = Integer.parseInt(st.nextToken());
        walk(distance); // walk
    }
}

より多くの行を読みたい場合

for(String input; sc.hasNextLine();) {
    input = sc.nextLine();

    // do something

}

または

for(String input; (input = reader.readLine()) != null;) {

    // do something

}
于 2012-05-03T02:29:40.393 に答える