无法使用.hasNextInt()结束while循环

时间:2015-11-16 21:07:39

标签: java

我正在编写一个程序,用户在一行中输入未知数量的数字,例如:2 6 3 9 12

我必须在队列中插入这些数字。但是,在我输入非整数值之前,循环不会结束。我在网上找到了一个使用.useDelimiter(" *")的解决方案。除了我输入两位数整数时,它的工作原理是:它将它分成两个单独的数字。有没有办法结束这个循环而不必输入非整数值?

Scanner in = new Scanner(System.in)
while(in.hasNextInt())
{
    myQueue.insert(in.nextInt());
}

3 个答案:

答案 0 :(得分:2)

以这种方式:

[A-Z]

答案 1 :(得分:2)

由于数字在一行上,您可以阅读该行并在该文本上构建System.out.println("Please enter a line of integer values: "); Scanner in = new Scanner(System.in); if (in.hasNextLine()) { String line = in.nextLine(); Scanner scan = new Scanner(line); while (scan.hasNextInt()) { myQueue.insert(scan.nextInt()); } } 。像,

data test;
input var1  var2 @@;
datalines;
1 100 2 200 3 300 4 400 5 500
run;



proc reg data=TEST;
MODEL VAR1 = VAR2;
RUN;

答案 2 :(得分:0)

我认为你走在正确的轨道上。有很多方法可以做到这一点。您可以通过添加以下行来修改当前代码:

in.useDelimiter(System.getProperty("line.separator"));

这将在任何平台上正确地将迭代器划分为新行。