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

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

我怎么能用java做到这一点。 有人告诉我,这可以使用Scanner或缓冲输入阅读器完成。 我不理解(或知道如何使用)缓冲输入阅读器。

我尝试使用扫描仪执行此操作,但在按两次输入后程序终止,但它不起作用

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!"); 

谢谢

– 编辑 – 以下代码使用字符串的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!"); 

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

这可以使用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; } } 

要打破它:

 Scanner scanner = new Scanner(System.in); String readString = scanner.nextLine(); 

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

  while(readString!=null) { System.out.println(readString); 

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

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

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

  if (scanner.hasNextLine()) { readString = scanner.nextLine(); } else { readString = null; } 

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

 Scanner scan = new Scanner(System.in); int i = scan.nextInt(); Double d = scan.nextDouble(); String newStr = ""; Scanner charScanner = new Scanner( System.in ).useDelimiter( "(\\b|\\B)" ) ; while( charScanner.hasNext() ) { String c = charScanner.next(); if (c.equalsIgnoreCase("\r")) { break; } else { newStr += c; } } System.out.println("String: " + newStr); System.out.println("Int: " + i); System.out.println("Double: " + d); 

这段代码工作正常