2014-03-25 165 views
-1

我正在写一个程序,需要收集一个数字块并对其进行处理。但由于某种原因,扫描仪无法读取所有输入的数字。哪里不对?扫描仪Java的问题

int i = 0; 
while (i >=0){ 
    System.out.println(sc.nextInt()); 
    i++; 
} 

输入:

3 
100 
3 
5 75 25 
200 
7 
150 24 79 50 88 345 3 
8 
8 
2 1 9 4 4 56 90 3 

输出:

3 
100 
3 
5 
75 
25 
200 
7 
150 
24 
79 
50 
88 
345 
3 
8 
8 

它缺少最后的8位数字。为什么是这样?

+1

是否需要用户按回车键? – Jason

+0

您确定您向我们展示了正确的代码和正确的输入吗? –

+0

@Jason不,只是自动显示输​​出 – safaiyeh

回答

0

对于来自用户的只有整数,扫描器将只能工作,直到用户输入字符或除此代码以外的其他任何内容。

 try { 
      ArrayList<Integer> ar=new ArrayList<Integer>(); 
      Scanner s = new Scanner(System.in); 
      System.out.println("ENTER ANY CHARACTER AND PRESS ENTER TO EXIT!!"); 
      while(s.hasNextInt()) 
      { 
       ar.add(s.nextInt()); 
      } 

      for(int i:ar) 
      { 
       System.out.println(i); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
+0

这与原始问题有什么关系? – Jason

1

从System.in中扫描要求用户在扫描仪返回下一个扫描的int之前按Enter键。