Java 检查用户是否正在控制台窗口中键入
有没有办法检查用户是否在Java控制台窗口中键入内容 如果我键入了什么,我希望程序打印我键入的任何内容,否则打印出“无输入” 棘手的是,我希望程序不断循环并打印出“无输入”,然后当我键入“abc”时,它会立即打印出“abc” 我尝试使用Scanner执行以下操作:Java 检查用户是否正在控制台窗口中键入,java,Java,有没有办法检查用户是否在Java控制台窗口中键入内容 如果我键入了什么,我希望程序打印我键入的任何内容,否则打印出“无输入” 棘手的是,我希望程序不断循环并打印出“无输入”,然后当我键入“abc”时,它会立即打印出“abc” 我尝试使用Scanner执行以下操作: Scanner s = new Scanner(System.in); while(1){ if(s.hasNext()) System.out.println(s.next()); else System.out.p
Scanner s = new Scanner(System.in);
while(1){
if(s.hasNext()) System.out.println(s.next());
else System.out.println("No input");
}
但是当我运行它时,如果我没有键入任何内容,程序就停留在那里,没有打印“无输入”。实际上,“无输入”从未打印过。从命令行,我看不到在按下“输入”按钮之前接收输入的机会。(与“onKeyDown/Up”不同) 但考虑到并接受这一限制,一个简单的解决方案是使用: (…返回)
True
如果保证下一个read()
不会阻止输入,则返回false
您使用的是哪个操作系统/终端?大致如下:while(1)。。。1是一种什么样的条件?与之比较的是什么?如果是java,则代码无法编译,而(1)是无效的SyntaxyApp,而(1)适用于C/C++但在java中,则需要输入while(true)
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.Scanner;
public class Solution {
public static void main(String[] args) throws IOException {
final Reader rdr = new InputStreamReader(System.in);
final Scanner s = new Scanner(rdr);
while (true) {
if (rdr.ready()) {
System.out.println(s.next());
} else {
// use Thread.sleep(millis); to reduce output frequency
System.out.println("No input");
}
}
}
}