第二个 readLine() 在 Intellij IDEA 上返回空字符串

问题描述 投票:0回答:2

这是我使用的代码:

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in) );
String s1 = reader.readLine();
String s2 = reader.readLine();
String s3 = reader.readLine();
System.out.format("s1%s s2%b s3%s",s1,s2.equals(""),s3);

当我在控制台中输入以下文本时,第二个结果是一个空字符串。

gg
ss
s1gg s2true s3ss

有谁知道为什么会发生这种情况?

我在Mac上的IDEA中测试了该程序。

java string intellij-idea console readline
2个回答
2
投票

经过进一步调查,似乎您所描述的奇怪行为仅在多个读取行逐一堆叠并通过 Intellij IDEA 执行时才会发生。显然,无论使用什么操作系统,因为您在 Mac 上遇到此问题,而就我而言,它发生在 Windows 计算机上。

我也在其他 IDE 上测试了完全相同的代码,例如 Netbeans 和 Visual Studio Code,最终还使用 javac 手动编译它并通过 cmd 执行它,并且这些情况都没有在 Intellij IDEA 上显示相同的行为。

编辑

显然,正如评论中所指出的,这确实是Intellij IDEA 2022.1.1版本的问题。下面的链接也说会在2022.1.2版本中修复。

https://youtrack.jetbrains.com/issue/IDEA-293951/Console-readLine-skips-input-in-2022-1-1

所以,回答你的问题,这不是你编写的代码的问题,而是你正在使用的 IDE 的问题。


1
投票

正如 Dan 的回答中提到的,这确实是 Intellij IDEA 控制台中的一个错误。 这已经根据他们的跟踪器报告并修复了。修复应该会在 2022.1.2 版本中提供。

https://youtrack.jetbrains.com/issue/IDEA-293951/Console-readLine-skips-input-in-2022-1-1

在此之前,您可以尝试使用任何命令行终端来测试程序,该程序按预期工作得很好。

enter image description here - 使用 Build #IC-221.5591.52 进行测试结果

© www.soinside.com 2019 - 2024. All rights reserved.