Java 如何在扫描仪中自动标记退出hasNext

Java 如何在扫描仪中自动标记退出hasNext,java,while-loop,java.util.scanner,Java,While Loop,Java.util.scanner,我在一个在线编程比赛网站上做一个编程问题。说明是,当用户有输入要输入时,它应该继续获取用户输入(而不是来自文件)。代码大致如下所示: public static void main(String[] args) { Scanner input = new Scanner(System.in); while (input.hasNext()){ my_input = input.nextLine(); *Does some implementatio

我在一个在线编程比赛网站上做一个编程问题。说明是,当用户有输入要输入时,它应该继续获取用户输入(而不是来自文件)。代码大致如下所示:

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    while (input.hasNext()){
        my_input = input.nextLine();
        *Does some implementation*
    }
}

while循环中没有允许退出的条件或中断。如果这是手动运行的,则始终会有下一个输入。当我提交代码时,评估代码的系统如何能够退出while循环。我认为它会陷入无限循环,因为您总是可以添加另一个输入。

如果将标准输入重定向到从文件读取,则当扫描仪到达文件末尾时,循环将退出


当程序从控制台读取时,您可以在Unix(包括OSX)上按Ctrl-D,或在Windows上按Ctrl-Z,然后按Enter,手动指示输入流的结束。

是的,但我不是说文件。如果它是一个文件,我知道在检查.hasNext()时,它的计算结果将为false。我指的是System.in.@ashimashi:我指的是重定向,其中
System.in
来自a文件:@ashimashi And
System.in
可以是任何内容(即任何
InputStream
)。