Java使用扫描仪输入密钥按下

H J*_*H J 20 java console input bufferedreader java.util.scanner

我正在使用Java编程.
我正在尝试编写代码,可以识别用户是否在基于控制台的程序中按下回车键.

我怎么能用java做到这一点.有人告诉我,这可以使用扫描仪或缓冲输入阅读器完成.我不明白(或知道如何使用)缓冲输入阅读器.

我尝试使用扫描仪这样做,但按两次输入后程序终止,它不起作用

    Scanner readinput = new Scanner(System.in);

    String enterkey = "Hola";
    System.out.print(enterkey);


    enterkey = readinput.nextLine();
     System.out.print(enterkey);

    if(enterkey == ""){

        System.out.println("It works!");
Run Code Online (Sandbox Code Playgroud)

谢谢

- 编辑 - 以下代码使用equals字符串的方法而不是==

    Scanner readinput = new Scanner(System.in);

    String enterkey = "Hola";
    System.out.print(enterkey);


    enterkey = readinput.nextLine();
     System.out.print(enterkey);

    if(enterkey.equals("")){

        System.out.println("It works!");
Run Code Online (Sandbox Code Playgroud)

如何做到这一点,以及使用缓冲输入阅读器做到这一点的优点是什么?

Cal*_*man 27

这可以使用java.util.Scanner,并将进行多次"输入"击键:

    Scanner scanner = new Scanner(System.in);
    String readString = scanner.nextLine();
    while(readString!=null) {
        System.out.println(readString);

        if (readString.isEmpty()) {
            System.out.println("Read Enter Key.");
        }

        if (scanner.hasNextLine()) {
            readString = scanner.nextLine();
        } else {
            readString = null;
        }
    }
Run Code Online (Sandbox Code Playgroud)

要打破它:

Scanner scanner = new Scanner(System.in);
String readString = scanner.nextLine();
Run Code Online (Sandbox Code Playgroud)

这些行初始化一个Scanner标准输入流(键盘)读取的新内容,并从中读取一行.

    while(readString!=null) {
        System.out.println(readString);
Run Code Online (Sandbox Code Playgroud)

当扫描仪仍然返回非空数据时,将每行打印到屏幕上.

        if (readString.isEmpty()) {
            System.out.println("Read Enter Key.");
        }
Run Code Online (Sandbox Code Playgroud)

如果输入提供"enter"(或return,或者其他)键,则该nextLine()方法将返回一个空字符串; 通过检查字符串是否为空,我们可以确定是否按下了该键.此处显示文本" 读取输入密钥",但您可以在此处执行所需的任何操作.

        if (scanner.hasNextLine()) {
            readString = scanner.nextLine();
        } else {
            readString = null;
        }
Run Code Online (Sandbox Code Playgroud)

最后,在按下"输入"键后打印内容和/或做某事时,我们检查扫描仪是否有另一行; 对于标准输入流,此方法将"阻塞",直到流关闭,程序执行结束或提供进一步输入.