Scanner的nextLine()方法如何在按回车键时停止执行?

时间:2015-07-18 19:30:20

标签: java multithreading

我用Threads打破了一些冰,但是因为

而卡住了
  

RETURN键线程结束

但在typing some string主题didn't stop上。为什么这是因为nexLine()方法获取任何字符串值以及按RETURN键线程的原因何时停止?

class MyThread extends Thread {
    private boolean running = true;

    public void run() {
        while (running) {
            System.out.println("hello");
        }
    }

    public void shutdown() {
        running = false;
    }
}

public class Main {

    public static void main(String[] args) {
        MyThread obj = new MyThread();
        obj.start();

        Scanner input = new Scanner(System.in);
        input.nextLine();    
        obj.shutdown();

    }

}

2 个答案:

答案 0 :(得分:1)

它会在它到达终点时停止。输入“enter”与点击“\ n”相同,因此停止。阅读有关方法和Scanner类的文档可能有助于进一步理解它。

http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html

答案 1 :(得分:0)

因为线程将在run方法返回时死亡,并且这将在throws返回时发生,这将在发生换行时发生。

来自nextLine

  

使此扫描程序超过当前行并返回该输入   被跳过了。