2013-10-15 39 views
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]); 
} 

当我尝试输入这一点,例如: “四”为什么我的循环似乎从索引1开始?

一个

我得到一个错误它不应该把这些字符串值放入数组中吗?

+4

''我在“4”处得到一个错误。“” - 什么错误?请显示完整的错误信息。 –

+0

“线程中的异常”main java.util.InputMismatchException java.util.Scanner.throwFor(Scanner.java:909)at java.util.Scanner.next(Scanner.java:1530)at java.util.Scanner。在BarChart.main处的java.util.Scanner.nextInt(Scanner.java:2119)处的nextInt(Scanner.java:2160)(BarChart.java:23) – user2770254

回答

9

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

如果您键入您的输入是这样的:

4 one 
two 
three 
four 
1 2 3 4 

那么你会用{"one", "two", "three", "four"}标签阵列和{1, 2, 3, 4}数据阵列结束。

相关问题