如何在Java中仅删除字符串的尾随空格并保留前导空格?自 JDK 11 起早期的 JDK 版本
trim()
函数同时删除了尾随和前导空格,但是,如果我只想删除字符串的尾随空间,我该怎么做?
trim()
函数同时删除了尾随和前导空格,但是,如果我只想删除字符串的尾随空间,我该怎么做?
如果您使用的是 JDK 11 或更高版本,则可能应该使用 stripTrailing()。
使用正则表达式 ,您可以将所有尾随空格字符(包括空格和制表符)替换为空字符串 ()。\s++$
""
final String text = " foo ";
System.out.println(text.replaceFirst("\\s++$", ""));
输出
foo
以下是正则表达式的细分:
\s
– 任何空格字符,++
– 匹配一个或多个先前的令牌(所有格);即,匹配一个或多个空格字符。该模式以其所有格形式使用,当模式不匹配时,它需要更少的时间来检测情况。+
++
$
– 字符串的末尾。因此,正则表达式将尽可能多地匹配空格,紧随其后的是字符串的末尾:换句话说,尾随空格。
学习正则表达式的投资将变得更加有价值,如果你以后需要扩展你的要求。
引用
另一种选择是使用Apache Commons,特别是StringUtils.stripEnd。StringUtils
String stripped = StringUtils.stripEnd(" my lousy string "," ");