[英]Java using scanner enter key pressed
我正在使用Java进行编程。
我正在尝试编写可识别用户是否在基于控制台的程序中按Enter键的代码。
我如何使用Java做到这一点。 有人告诉我,可以使用“扫描仪”或缓冲输入阅读器完成此操作。 我不了解(或不知道如何使用)缓冲输入阅读器。
我尝试使用扫描仪执行此操作,但在按Enter键两次后,程序终止,并且不起作用
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
,该Scanner
正在从标准输入流 (键盘)中读取并从中读取一行。
while(readString!=null) {
System.out.println(readString);
当扫描仪仍在返回非空数据时,将每一行打印到屏幕上。
if (readString.isEmpty()) {
System.out.println("Read Enter Key.");
}
如果输入提供了“ enter”(或return,或其他)键,则nextLine()
方法将返回一个空字符串; 通过检查字符串是否为空,我们可以确定是否按下了该键。 此处显示了“ 读取Enter键 ”文本,但是您可以在此处执行所需的任何操作。
if (scanner.hasNextLine()) {
readString = scanner.nextLine();
} else {
readString = null;
}
最后,在打印内容和/或按“ Enter”键后执行了某些操作之后,我们检查扫描仪是否还有另一行; 对于标准输入流,此方法将“阻塞”,直到关闭流,结束程序执行或提供其他输入为止。
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);
该代码可以正常工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.