使用java Scanner类

时间:2014-11-13 09:54:35

标签: java.util.scanner

我正在尝试获取用户输入(整数),直到她进入'结束'(字符串)。我正在尝试以下代码,但它只存储在数组中输入的备用数字。请建议。

Scanner sc = new Scanner(System.in);                
        List<Integer> al = new ArrayList<Integer>(); 
        System.out.println("Enter 'end' to stop input");                
        while(!sc.next().equals("end")){                    
            if(sc.hasNextInt()){            
                al.add(Integer.valueOf(sc.nextInt()));
            }           
        }
        sc.close();

1 个答案:

答案 0 :(得分:0)

我认为这是一个“功课”问题。

当您致电sc.next()时,您正在使用代币。这就是为什么你只看到一半的数字。

你的程序需要的关键部分的逻辑是这样的:

  is the next token an integer?
      yes - read it as an integer
      no - read it as a string, test if it is "end" and decide what to do next