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]);
}

When I try to input this, for example:

4
one
two
three
four

I get an error at "four." Shouldn't it be putting these string values into the array?

4

1 回答 1

9

问题是它nextInt不消耗行 - 只是整数。所以你实际上得到了“”、“一”、“二”和“三”的标签——然后它试图将“四”读取为第一个数据元素(带有nextInt)。

如果您像这样键入输入:

4 one
two
three
four
1 2 3 4

那么你最终会得到一个标签数组{"one", "two", "three", "four"}和一个数据数组{1, 2, 3, 4}

于 2013-10-15T19:44:23.977 回答