Java扫描程序或缓冲读取器
我有一个要求,我必须从控制台而不是从文件中读取输入 输入格式如下。我知道我可以使用任何字符退出。但我不能给出除此之外的任何其他输入。我可以写一些东西,比如等待特定的时间量,如果没有输入,则中断循环,或者可以做些什么来读取输入,这些输入的长度我们以前从未知道 你好,阿格尼斯Java扫描程序或缓冲读取器,java,java.util.scanner,bufferedreader,Java,Java.util.scanner,Bufferedreader,我有一个要求,我必须从控制台而不是从文件中读取输入 输入格式如下。我知道我可以使用任何字符退出。但我不能给出除此之外的任何其他输入。我可以写一些东西,比如等待特定的时间量,如果没有输入,则中断循环,或者可以做些什么来读取输入,这些输入的长度我们以前从未知道 你好,阿格尼斯 仆从,贝多 收缩射线矢量 下面的逻辑将使读线永远等待输入,并且不会有任何帮助,因为我每次按enter键都将再次成为另一个输入字符,并且永远不会结束 我也不想给任何退出字符来决定输入的结束,比如“退出”。如何处理这个 Array
仆从,贝多
收缩射线矢量 下面的逻辑将使读线永远等待输入,并且不会有任何帮助,因为我每次按enter键都将再次成为另一个输入字符,并且永远不会结束 我也不想给任何退出字符来决定输入的结束,比如“退出”。如何处理这个
ArrayList<String> emp=new ArrayList<String>();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
h=br.readLine();
while((h=br.readLine()) != null)
{
emp.add(h);
}
ArrayList emp=new ArrayList();
BufferedReader br=新的BufferedReader(新的InputStreamReader(System.in));
h=br.readLine();
而((h=br.readLine())!=null)
{
环境管理署增补(h);
}
您可以添加一个请求用户输入的线程,然后在每个新输入上重新启动一个计时器。当计时器过期时,它会关闭用户输入线程
Scanner reader = new Scanner(System.in);
System.out.println("Enter something: ");
String s=reader.nextLine();
System.out.println("You enetered: " + s);
其结果是:
Enter something:
Mike,Elofson
You enetered: Mike,Elofson
一般来说,根据我的经验,扫描仪更容易使用,也更常用于输入。一个“输入”(即直接按Enter键)或两个/三个连续的“输入”如何
我认为等一段时间不是个好主意。无论如何,你需要一些输入来表示结束。我也不想给出,不知道你的意思。你是说你希望他们能够输入'exit'和'exit'?如果是这样,只需将它添加到while循环,
&&!h、 等于(“退出”)
不,我不希望他们键入任何类似“退出”的字符,并验证它以检查输入的结尾。可能重复请参阅forready()
。我个人使用BufferedReader来读取输入,而不是每次需要时都使用扫描仪,因为我个人在扫描仪方面有问题,但BR始终按预期工作。