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)
最后,在按下"输入"键后打印内容和/或做某事时,我们检查扫描仪是否有另一行; 对于标准输入流,此方法将"阻塞",直到流关闭,程序执行结束或提供进一步输入.
| 归档时间: |
|
| 查看次数: |
101109 次 |
| 最近记录: |