我在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中完全正常。
答案 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");
答案 2 :(得分:0)
打开一个文本文件,并将JTextArea的文本保存在其中。现在通过检查以下行
,逐个字符地读取保存的文本文件中的文本string variable s="";
if(ch=='\n')
add the #! to the string variable;
最后将此字符串变量放在输出部分。