Java Scanner跳过输入

时间:2015-12-02 18:15:43

标签: java string queue java.util.scanner user-input

我对Java很新,并且获得用户输入很难,而且老师并没有真正解释它,我使用的所有资源都没有帮助解决我的问题:

我正在尝试编写一个简单的程序,继续读取用户输入并将其存储在队列中( - >程序实际上是什么),直到输入某个String。首先它需要两个字符串然后两个双打。第一次一切正常但由于某种原因第二次迭代它跳过第二个String输入并直接进入第一个双输入。

以下是一个示例代码:

    System.out.print("Enter first string: ");
    while(!line.equals("-") && scanner.hasNext())
    {
        line = scanner.nextLine();
        if(!line.equals("-"))
        {
            a.offer(line);

            System.out.print("Enter second string: ");
            if(scanner.hasNextLine())
            {
                line = scanner.nextLine();
                b.offer(line);
            }
            System.out.print("Enter first double: ");
            double tmp = scanner.nextDouble();
            c.offer(tmp);

            System.out.print("Enter second double: ");
            tmp = scanner.nextDouble();
            d.offer(tmp);
        }
        System.out.print("Enter first string: ");
    }

到目前为止,我只在C语言中编程,并且在那里获得用户输入更容易。那么我做错了什么?

编辑:它被标记为Skipping nextLine() after using next(), nextInt() or other nextFoo() methods的副本 我看了一下,在那个问题中,问题是由于使用了.nextInt(),最后的换行符没有消耗掉。但我使用的是.nextLine(),它应该使用换行符,所以我仍然不知道为什么会发生这种情况。

0 个答案:

没有答案