我有一个这样的字符串:Java的替代特殊字符的字符串
BEGIN\n\n\n\nTHIS IS A STRING\n\nEND
而且我要删除所有新行字符,并有结果为:
BEGIN THIS IS A STRING END
我该怎么办完成这个?根据我的经验,标准的API函数将不起作用。
我有一个这样的字符串:Java的替代特殊字符的字符串
BEGIN\n\n\n\nTHIS IS A STRING\n\nEND
而且我要删除所有新行字符,并有结果为:
BEGIN THIS IS A STRING END
我该怎么办完成这个?根据我的经验,标准的API函数将不起作用。
一个简单的replace('\n', ' ')
会导致字符串变成:
BEGIN THIS IS A STRING END
**** **
其中*
的是空间。如果你想要一个空格,尝试replaceAll("[\r\n]{2,}", " ")
而如果他们不换行,但字面"\n"
的枯萎尝试:
replace("\\n", " ")
或:
replaceAll("(\\\\n){2,}", " ")
尝试str.replaceAll("\\\\n", "");
- 这就是所谓的双重转义:)
String str = "BEGIN\n\n\n\nTHIS IS A STRING\n\nEND;";
str = str.replaceAll("\\\n", " ");
// Remove extra white spaces
while (str.indexOf(" ") > 0) {
str = str.replaceAll(" ", " ");
}
这给出了确切的预期输出。 –
该作品对我来说:
String s = "BEGIN\n\n\n\nTHIS IS A STRING\n\nEND";
String t = s.replaceAll("[\n]+", " ");
System.out.println(t);
关键是reg-ex。
我通常不用Java编码,但是快速搜索使我相信String.trim应该适合您。它说,它消除了领先,并与\ n \ t等一起尾随空白......
希望这个片段将帮助,
Scanner sc = new Scanner(new StringReader("BEGIN\n\n\n\nTHIS IS A STRING\n\nEND "));
String out = "";
while (sc.hasNext()) {
out += sc.next() + " ";
}
System.out.println(out);
所以,你有文字上的'\ N'?没有实际的换行符? –
[文本清理和替换:从Java中的文本中删除\ n]的可能重复(http://stackoverflow.com/questions/542226/text-cleaning-and-replacement-delete-n-from-a-text- in-java) – CoolBeans