System.in.read(),在Eclipse和Netbeans中的结果不同

whitzsjs  于 2022-11-10  发布在  Eclipse
关注(0)|答案(1)|浏览(152)

我正在Eclipse和NetBeans中尝试以下代码:

while (true) 
    System.out.println(System.in.read());

此代码打印与键入的字符关联的代码,并在两个带注解的IDE中正常工作。
除了按Enter键之外,它们的工作方式是相同的。 13号和10号
例如,如果我按下a(ASCII 97)键和Enter,输出如下:
NetBeans:97 10 Eclipse:97 13 10
为什么它们的工作方式不同?Eclipse是否可以配置为给予与NetBeans相同的输出?非常感谢

qojgxg4l

qojgxg4l1#

为什么它们的工作方式不同?
好吧,它们是由不同的人实现的不同产品。那么你为什么会期望它们是一样的呢?
据推测,Eclipse团队决定他们的IDE的控制台模拟器应该使用OS平台的行分隔符(\r\n),而Netbeans团队认为UNIX / Linux的方式是一个更好的主意。
为什么?问问实施者!
哪一个是正确的?这是一个观点的问题。
是否可以将Eclipse配置为给予与NetBeans相同的输出?
我认为您可能需要在Console上下文中定制Eclipse键绑定来实现这一点。
在Console首选项中有一些相关的选项,但我认为它们决定了Eclipse控制台将如何处理应用程序输出的控制字符。
但是坦率地说,我认为你应该编写你的应用程序来使用这两种形式的行终止符序列。即从真实的的命令外壳。
有多种方法可以获得平台行分隔符;例如:

或者你可以把你的输入代码写成“不可知论者”...就像Scanner.readLine()BufferedReader.readLine()一样。

相关问题