无法替换jTextArea中的返回字符

时间:2014-02-17 05:13:54

标签: java swing jtextarea

我在Windows 7中替换JTextArea中的返回字符时遇到了问题。 我有一个输入textArea,为了数据存储的目的,我想用“#!”这样的唯一字符串替换“\ r \ n”。问题是,我似乎无法取代它。

EX问题: JTextArea exampleText = new JTextArea("Enter Text",10,3);
String oneLineOfText = exampleText.getText().replace("\r\n","#!");
System.out.println(oneLineOfText);

输入:
Text
Text everywhere

输出:
Text
Text everywhere

期望的输出: Text#!Text everywhere

我觉得我必须做一些非常愚蠢的事情。当我使用“\ n”而不是“\ r \ n”时,这在ubuntu中完全正常。

3 个答案:

答案 0 :(得分:2)

据我了解,\r\n是一个Windows行终止符。

您可以查找倍数并替换它们,而不是只查找单行终止符。

为此你可以使用正则表达式和String#replaceAll,例如......

//String text = "This is\r\na test\r\nfor some text";
String text = "This is\na test\r\nfor some text";
System.out.println(text);
text = text.replaceAll("\r\n|\n", "#!");
System.out.println(text);

哪些输出......

This is
a test
for some text
This is#!a test#!for some text

您还应该注意,并非所有文本编辑器/文本文件都具有\r\n行终止符,但Java在处理此问题方面做得很好......

答案 1 :(得分:1)

不要对换行符进行硬编码,请使用系统换行符:

System.getProperty("line.separator");

How do I get a platform-dependent new line character?

答案 2 :(得分:0)

打开一个文本文件,并将JTextArea的文本保存在其中。现在通过检查以下行

,逐个字符地读取保存的文本文件中的文本
string variable s="";
if(ch=='\n')
   add the #! to the string variable;

最后将此字符串变量放在输出部分。