java - 编写一个循环,直到您在控制台中输入内容
问题描述
我正在尝试构建一个循环,当我在控制台中输入文本时执行特定的方法。我想使用 java.util.Scanner 但是当我尝试使用 .hasNext() 来检查 if() 然后 .next() 来获取输入时,它会等到我输入一些东西而不是循环。
while(true) {
main_loop();
}
private void main_loop() {
do_other_things();
if(sc.hasNext()){
System.out.println("user entered " + sc.next());
} else {
System.out.println("user entered nothing");
}
}
我怎样才能让它输出“用户没有输入任何内容”,直到我输入一些内容,以便它输出“用户输入的 [...]”,然后继续“用户没有输入任何内容”?
解决方案
使用另一个线程:
public static void main(String[] args) {
new Thread(() -> {
Scanner scanner = new Scanner(System.in);
while (true) {
if (scanner.hasNext()) {
//... user has input
}
else {
//... user does not have input
}
}).start();
doSomethingElse();
}
推荐阅读
- c - 如何创建(C)函数以使用“读取”将文件中的数据读取到链表中?
- laravel - 如何检索选定的选项值?
- java - 循环遍历交互式问题列表
- mysql - MYSQL 加入两个表(+ LIMIT 基于第一个表)
- python - 使用 beautifulsoup 循环遍历 2 个文件并将输出打印到单个 panda 数据帧
- java - Spring Boot RESTFUL 控制器的单元测试
- javascript - 如何从具有最大值的嵌套 JSON 数组对象中获取元素
- java - 子字符串管理出现错误
- android - 错误-从 android Webview 中的 URL 加载 PDF
- r - 在 R 中生成唯一子字符串表