当前位置: 首页 > 面试题库 >

如何在Java中仅删除字符串的尾随空格并保留前导空格?

勾安翔
2023-03-14
问题内容

trim()函数会删除尾部和前导空格,但是,如果我只想删除字符串的尾部空格,该怎么办?


问题答案:

如果您使用的是JDK
11或更高版本,则可能应该使用stripTrailing()。

早期的JDK版本

使用正则表达式\s++$,您可以将所有尾随空格字符(包括空格和制表符)替换为空字符串("")。

final String text = "  foo   ";
System.out.println(text.replaceFirst("\\s++$", ""));

输出量

  foo

在线演示。

这是正则表达式的细分:

  • \s –任何空白字符,
  • ++–匹配一个或多个先前的令牌(可能);即,匹配一个或多个空格字符。所述+图案在其使用所有格形式 ++,这需要更少的时间来检测的情况下,当模式不匹配。
  • $ –字符串的末尾。

因此,正则表达式将匹配尽可能多的空格,紧随其后的是字符串的结尾:换句话说,是尾随空格。

如果您以后需要扩展需求,则对学习正则表达式的投资将变得更加有价值。

参考文献

  • Java正则表达式语法


 类似资料:
  • 问题内容: 是否有一种方便的方法来从Java字符串中剥离任何前导或尾随空格? 就像是: 结果: 将替换keep和this之间的空间。 问题答案: 你可以尝试trim()方法。

  • 问题内容: 我很难尝试将.strip与以下代码行结合使用。 谢谢您的帮助。 问题答案: 您可以使用strip()删除尾随和前导空格。 注意:内部空间被保留

  • 问题内容: 在Java中寻找快速,简单的方法来更改此字符串 看起来像这样 在这里,我用一个空格替换了所有多个空格,但我也希望字符串开头的一个或多个空格消失。 这样的事情使我部分地在那里 但不完全是 问题答案: 尝试这个: 也可以看看 - - 返回字符串的副本,省略前导和尾随空格。 - 重复 没有trim()正则表达式 也可以只用一个执行此操作,但这比解决方案的可读性差得多。尽管如此,这里提供它只是

  • 问题内容: 我有一个包含两个字段(国家和ISO代码)的表: 在某些行中,第二个字段在开头和/或结尾处都有空格,这会影响查询。 有没有一种方法(在SQL中)遍历表并查找/替换field2中的空格? 问题答案: 您正在寻找TRIM。

  • 问题内容: 我需要在字符串中的单词之后删除空格。可以用一行代码完成吗? 例: 问题答案: 更多关于在文档

  • 我试图从字符串中删除所有尾随空格和句点,以便如果我使用以下示例之一: 或者 他们最终会成为: 我知道diddy luck是关于的,但我在这里找到了一个删除尾部空白的函数: 我尝试修改以包含句点,但它仍然只删除尾随的空白字符: 谁能告诉我这是怎么做到的,也许能解释一下我用的正则表达式?