我有一个字符串,其中包含一些文本,后面跟着一个空行。如何最好地保留文本部分,但删除末尾的换行符空格?
我有一个字符串,其中包含一些文本,后面跟着一个空行。如何最好地保留文本部分,但删除末尾的换行符空格?
对于其他在处理不同换行符时寻找答案的人:
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$", ""));
String text = readFileAsString("textfile.txt");
text = text.replace("\n", "").replace("\r", "");