it-swarm.cn

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

我有一个字符串,其中包含一些文本后跟一个空行。保留文本部分的最佳方法是什么,但从末尾删除空白换行符?

106
Confiqure

使用 String.trim() 方法从字符串的开头和结尾删除空格(空格,换行等)。

String trimmedString = myString.trim();
240
Crozin
String.replaceAll("[\n\r]", "");
24
John B
String trimStartEnd = "\n TestString1 linebreak1\nlinebreak2\nlinebreak3\n TestString2 \n";
System.out.println("Original String : [" + trimStartEnd + "]");
System.out.println("-----------------------------");
System.out.println("Result String : [" + trimStartEnd.replaceAll("^(\\r\\n|[\\n\\x0B\\x0C\\r\\u0085\\u2028\\u2029])|(\\r\\n|[\\n\\x0B\\x0C\\r\\u0085\\u2028\\u2029])$", "") + "]");
  1. 字符串的开头= ^,
  2. 字符串结尾= $,
  3. 正则表达式组合= | ,
  4. Linebreak =\r\n | [\ n\x0B\x0C\r\u0085\u2028\u2029]
1
hmmh

如果您的字符串可能null,请考虑使用 StringUtils.trim() - String.trim() 的空值安全版本。

1
entpnerd

我也要为此添加一个答案,因为虽然我有同样的问题,但提供的答案还不够。考虑到一些想法,我意识到这可以通过正则表达式轻松完成。

从头开始删除 换行符

// Trim left
String[] a = "\n\nfrom the beginning\n\n".split("^\\n+", 2);

System.out.println("-" + (a.length > 1 ? a[1] : a[0]) + "-");

和字符串结尾:

// Trim right
String z = "\n\nfrom the end\n\n";

System.out.println("-" + z.split("\\n+$", 2)[0] + "-");

我确信这不是修剪字符串最有效的方法。但它似乎是内联此类操作的最简洁和最简单的方法。

请注意,可以使用相同的方法从任一端修剪任何变体和字符组合,因为它是一个简单的正则表达式。

0
Zhro