0
public static void main(String args[])
{

    Scanner scan = new Scanner(System.in);
    int n = scan.nextInt();
    String[] label = new String[n];
    int[] data = new int[n];
    int x = 0;

    for(x = 0; x < n*2; x++)
    {
        if (x<n)
        {
            label[x] = scan.nextLine();
        }
        if (x >= n)
        {
            data[x-n] = scan.nextInt();
        }
    }   
    System.out.print(data[0]);
}

たとえば、これを入力しようとすると:

4
ワン
ツー
スリー
フォー

「4」でエラーが発生します。これらの文字列値を配列に入れるべきではありませんか?

4

1 に答える 1

9

問題はnextInt、行を消費しないことです-整数だけです。したがって、実際には ""、"one"、"two"、"three" のラベルを取得しています。次に、"four" を最初のデータ要素として ( を使用して) 読み取ろうとしていますnextInt

次のように入力すると、次のようになります。

4 one
two
three
four
1 2 3 4

のラベル配列{"one", "two", "three", "four"}と のデータ配列になり{1, 2, 3, 4}ます。

于 2013-10-15T19:44:23.977 に答える