Java使用扫描仪按enter键
我正在使用Java编程。Java使用扫描仪按enter键,java,input,console,java.util.scanner,bufferedreader,Java,Input,Console,Java.util.scanner,Bufferedreader,我正在使用Java编程。 我正在尝试编写代码,可以识别用户是否在基于控制台的程序中按enter键。 如何使用java实现这一点。我被告知,这可以使用扫描仪或缓冲输入读取器来完成。我不理解(或不知道如何使用)缓冲输入读取器 我试着用扫描器来做这件事,但按两次enter键后,程序终止,无法工作 Scanner readinput = new Scanner(System.in); String enterkey = "Hola"; System.out.print(ente
我正在尝试编写代码,可以识别用户是否在基于控制台的程序中按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();
这些行初始化从(键盘)读取的新的扫描仪
,并从中读取一行
while(readString!=null) {
System.out.println(readString);
当扫描仪仍返回非空数据时,将每行打印到屏幕上
if (readString.isEmpty()) {
System.out.println("Read Enter Key.");
}
如果输入提供了“enter”(或return,或其他)键,则nextLine()
方法将返回一个空字符串;通过检查字符串是否为空,我们可以确定是否按下了该键。此处将打印文本Read Enter Key,但您可以在此处执行所需的任何操作
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);
此代码运行良好将
String
值与String
的equals
方法进行比较,而不是与=
进行比较,后者比较两个对象引用以确定它们是否引用了同一个对象。首先,在Java中不要将字符串与==进行比较。谢谢,“使用equals方法比较字符串”