0

スキャナーと nextLine に問題があります。何が起こるかというと、ループの最初のラップをスキップすることです。私の推測では、スキャナーにはすでに改行などの何かがここに含まれていると思います。strCount とループ内のスキャナーに 2 つの異なるスキャナーを使用すると、うまくいきました。これは正しいですか?もしそうなら、2つの異なるスキャナーを使用せずにこれを機能させる方法はありますか.

import java.util.*;

public class chars_in_string {
public static void main(String[] args) {
    Scanner key = new Scanner(System.in);

    System.out.print("Number of strings?");
    int strCount = key.nextInt();
    String [] array = new String[strCount];

    for(int x = 0; x < strCount; x++){

        System.out.print("String "+(x+1)+":");
        array[x] = key.nextLine();

    }
}

}

入力/出力の例:

弦の数?8

文字列 1:文字列 2:

ここから任意の文字列を入力しても問題なく動作し、ループ内で 1 ステップジャンプして次のステップを取得します。

4

1 に答える 1

4

問題はScanner.nextInt()、行末記号を消費しないことです。nextLine()ループに入る前に余分なことをしてください。

于 2013-03-29T19:14:11.943 に答える