我使用
Java编程.
我正在尝试编写代码,可以识别用户是否在基于控制台的程序中按Enter键.
我正在尝试编写代码,可以识别用户是否在基于控制台的程序中按Enter键.
我如何使用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!");
谢谢
– 编辑 –
以下代码使用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();
这些行初始化从standard input stream(键盘)读取的新的扫描仪,并从中读取一行.
while(readString!=null) { System.out.println(readString);
当扫描仪仍然返回非空数据时,将每行打印到屏幕.
if (readString.isEmpty()) { System.out.println("Read Enter Key."); }
如果输入提供“输入”(或返回或任何)键,则nextLine()方法将返回一个空字符串;通过检查字符串是否为空,我们可以确定该键是否被按下.这里打印文本Read Enter Key,但您可以在此处执行任何您想要的操作.
if (scanner.hasNextLine()) { readString = scanner.nextLine(); } else { readString = null; }
最后,按下“进入”键后打印内容和/或做某事,我们检查扫描仪是否有另一行;对于标准输入流,该方法将“阻塞”,直到流关闭,程序执行结束或进一步输入.