从Java String的末尾删除行尾字符

Iai*_*oat 9 java regex string

我有一个字符串,我只想使用Java从字符串的最后删除行尾字符

"foo\r\nbar\r\nhello\r\nworld\r\n"
Run Code Online (Sandbox Code Playgroud)

我想成为

"foo\r\nbar\r\nhello\r\nworld"
Run Code Online (Sandbox Code Playgroud)

(这个问题与问题593671类似,但不一样)

pol*_*nts 16

你可以用s = s.replaceAll("[\r\n]+$", "");.这修剪\r\n字符在字符串的结尾

正则表达式解释如下:

  • [\r\n]是一个包含\r和的字符类\n
  • + 是一次或多次重复
  • $ 是字符串结束锚

参考


相关话题

您还可以使用从字符串的开头结尾String.trim()剪裁任何空格字符:

s = s.trim();
Run Code Online (Sandbox Code Playgroud)

如果您需要检查是否有String只含有空白字符,你可以检查它是否isEmpty()经过trim():

if (s.trim().isEmpty()) {
   //...
}
Run Code Online (Sandbox Code Playgroud)

或者,您也可以查看它是否matches("\\s*")为空白字符的零或更多.请注意,在Java中,正则表达式matches尝试匹配整个字符串.在可以匹配子字符串的风格中,您需要锚定模式,所以它是^\s*$.

相关问题

  • `trim()`也会删除前导空格,这不是被问到的. (2认同)