假设我有一个TextArea供用户输入。它是多线的。
所以,我将以下文字写入其中。
"测试线
和线和
线"
嗯,这里需要提醒一下。要设置行分隔符,用户只需按 Enter 。现在,我想用" !"替换输入文本中的所有行分隔符。我希望输出为
"!!!测试线和线与线"
为此,我使用了以下代码。
System.out.println(getText().replace(System.getProperty("line.separator"), "!"));
但是,输出与输入文本相同。但是,如果我用
替换上面的代码System.out.println(getText().replace("\n", "!"));
输出结果与预期一致。
将此视为独立于操作系统。我在Windows XP下对此进行了测试。
如何将 \ n 替换为能够在不同操作系统中运行的内容。它应该是 System.getProperty(" line.separator")但我不明白为什么它在这里不起作用。
感谢。
答案 0 :(得分:3)
JTextArea(或JTextPane)的Document
始终将换行符存储为“\ n”。因此,使用JTextArea
时,以下代码适用于所有平台:
System.out.println(getText().replace("\n", "!"));
但是,如果您使用textArea.write(...)
方法,则“\ n”将替换为您平台的“line.separator”。
查看Text and New Lines,它会尝试更详细地解释此行为。