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

标签 java multithreading

我正在用 Threads 打破一些僵局,但我被卡住了,因为

pressing RETURN key thread ends

但是在输入一些字符串时,线程没有停止。为什么会这样,因为 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();

    }

}

最佳答案

它在到达行尾的那一刻就停止了。输入“enter”与点击“\n”相同,从而停止。阅读有关该方法和 Scanner 类的文档可能有助于进一步理解它。

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

关于java - Scanner 的 nextLine() 方法如何在按返回键时停止执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31494788/

相关文章:

java - 将大 CSV 文件加载到 SQLITE 数据库

Java Swing 元素转换

C++ 多线程 : terminate after throwing an instance of 'std::length_error'

java - 基于交叉点创建多边形

java - NoClassDefFoundError 仅适用于 EAR 中的特定类

java httprequest 从请求中获取正文

java - Servlet 是单例的设计原则是什么

c++ - 当调度策略为 SCHED_RR 时,pthread 临界区中运行时间峰值的原因可能是什么?

java - 具有两个线程的 IllegalMonitorStateException

java - 通过观察者从线程使用列表中仅获取最新元素