Scanner Java的问题

时间:2014-03-25 05:04:18

标签: 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位数字。这是为什么?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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();
        }