我正在按以下方式使用BufferedReader,

BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
for (int i = 0; i < 4; i++) {
   System.out.println(stdin.readLine());
}

给出的输入如下所示,
1
2
3

最后的输入不以\n\r结尾,因此对于3 readLine()将期望来自用户的输入,除非用户按下Enter键

使用扫描仪对此有什么解决方案?

实际上,我在解决Quora Question Nearby时遇到了这个问题,在他们的conditions中,他们提到了以下几行,

输入测试用例的最后一行是否以换行符结尾? [关联]

不。没有尾随空格或换行符。

Link for Code,在上一页提交,测试用例失败

对于零测试用例,它显示以下输出,

由于期望的输出为空,这意味着我的代码仍期望输入不提供的\n or \r

最佳答案

如果输入被终止(例如,实际上是从文件重定向标准输入的情况),那很好。当BufferedReader.readLine检测到基础数据的结尾时,它仍将返回其输入的最后一行。

鉴于这是一个自动化的挑战,我希望情况确实如此-我希望它可以像

java Solution < input.txt

所以基本上,我相信你应该会没事的。

关于java - 如何在Java中读取不以换行符或回车符结尾的行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19194813/

10-11 19:13