如何从字符串的开头和结尾删除换行符?

174

我有一个字符串,其中包含一些文本,后面跟着一个空行。如何最好地保留文本部分,但删除末尾的换行符空格?


4
不是的。链接中的问题是在询问“替换”,而不是其他。 - Faiz
12个回答

0

对于其他在处理不同换行符时寻找答案的人:

string.replaceAll("(\n|\r|\r\n)$", ""); // Java 7
string.replaceAll("\\R$", "");          // Java 8

这应该确切地移除最后一个换行符,并保留字符串中的所有其他空格,并且适用于 Unix (\n),Windows (\r\n) 和旧版 Mac (\r) 的换行符: https://dev59.com/I2Ij5IYBdhLWcg3wn2dn#20056634, https://dev59.com/I2Ij5IYBdhLWcg3wn2dn#49791415"\\R" 是 Java 8 中在 Pattern 类中引入的匹配器:https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html

这通过了这些测试:

// Windows:
value = "\r\n test \r\n value \r\n";
assertEquals("\r\n test \r\n value ", value.replaceAll("\\R$", ""));

// Unix:
value = "\n test \n value \n";
assertEquals("\n test \n value ", value.replaceAll("\\R$", ""));

// Old Mac:
value = "\r test \r value \r";
assertEquals("\r test \r value ", value.replaceAll("\\R$", ""));

-5
String text = readFileAsString("textfile.txt");
text = text.replace("\n", "").replace("\r", "");

3
这并没有正确回答问题,它移除了所有的CR和LF,而不仅仅是开头和结尾的。 - james.garriss
这将替换所有内容,不仅限于开头和结尾。 - Hamzeh Soboh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接