我正在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相同的输出?非常感谢
1条答案
按热度按时间qojgxg4l1#
为什么它们的工作方式不同?
好吧,它们是由不同的人实现的不同产品。那么你为什么会期望它们是一样的呢?
据推测,Eclipse团队决定他们的IDE的控制台模拟器应该使用OS平台的行分隔符(
\r\n
),而Netbeans团队认为UNIX / Linux的方式是一个更好的主意。为什么?问问实施者!
哪一个是正确的?这是一个观点的问题。
是否可以将Eclipse配置为给予与NetBeans相同的输出?
我认为您可能需要在Console上下文中定制Eclipse键绑定来实现这一点。
在Console首选项中有一些相关的选项,但我认为它们决定了Eclipse控制台将如何处理应用程序输出的控制字符。
但是坦率地说,我认为你应该编写你的应用程序来使用这两种形式的行终止符序列。即从真实的的命令外壳。
有多种方法可以获得平台行分隔符;例如:
或者你可以把你的输入代码写成“不可知论者”...就像
Scanner.readLine()
和BufferedReader.readLine()
一样。