5

我正在使用 BufferedReader 如下,

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

给出的输入如下,

1
2
3

最后一个输入不以\nor结尾\r,因此对于 3 readLine() 将期望用户输入,除非用户按下回车键

使用 Scanner 的任何解决方案?

实际上,我在解决附近的Quora问题时遇到了这个问题,在他们的条件下,他们提到了以下几行,

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

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


代码链接,在上面的页面提交,测试用例失败

对于零测试用例,它显示以下输出, 在此处输入图像描述 由于预期输出为空白,这意味着我的代码仍然期望\n or \r输入未提供

4

2 回答 2

7

如果输入被终止——例如,如果标准输入实际上是从文件中重定向的——那么就可以了。BufferedReader.readLine当它检测到基础数据的结尾时,仍将返回其输入的最后一行。

鉴于这是一个自动化的挑战,我希望是这样 - 我希望它会像这样运行

java Solution < input.txt

所以基本上,我相信你应该没问题。

于 2013-10-05T06:48:42.900 回答
1

如果你想在不按回车的情况下得到输出,那是不可能的。因为 System.in 流默认情况下不允许您在不按 Enter 的情况下进行输入。为此,您必须使用JNI 之类的第三方库。

于 2013-10-05T06:45:56.043 回答