2013-10-15 41 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}數據陣列結束。

相關問題