【发布时间】:2014-06-13 04:58:44
【问题描述】:
假设我有一个 TextArea 供用户输入。而且它是多线的。
所以,我将以下文本写入其中。
"检测线
和线和
行”
嗯,这里要提醒一下。要放置行分隔符,用户只需按 Enter。现在,我想用“!”替换输入文本中的所有行分隔符。我希望输出是
“测试!线!和!线!和!线”
为了做到这一点,我使用了以下代码。
System.out.println(getText().replace(System.getProperty("line.separator"), "!"));
但是,输出与输入文本相同。但是,如果我将上面的代码替换为
System.out.println(getText().replace("\n", "!"));
输出结果与预期一致。
认为这是独立于操作系统的。我在 Windows XP 下对此进行了测试。
如何将 \n 替换为能够在不同操作系统中运行的东西。它应该是 System.getProperty("line.separator") 但我不明白为什么它在这里不起作用。
谢谢。
【问题讨论】:
-
这个输入是通过 Java 事物(例如 Swing/JavaFX)还是通过本机 Windows 事物(例如控制台)? (抱歉,大脑太煎熬,想不出比“事物”更合适的词)如果没记错的话,Java 应该在内部使用
\n,所以只要你不与之交互,你可能不需要line.separator属性任何本机 Windows 组件。不过,这不是 100% 确定的。 -
澄清一下:您期待的是“Testing line!and line and!line”还是“Testing!line!and!line!and!line”?
-
@Laambi 我的错。空间现在很好。行分隔符在这里很麻烦。 :D
标签: java cross-platform newline