Java如何用字符串中的单个空格替换2个或更多空格并删除前导和尾随空格

在Java中寻找快速,简单的方法来更改此字符串

" hello     there   "

看起来像这样

"hello there"

在这里,我用一个空格替换了所有多个空格,但我也希望字符串开头的一个或多个空格消失。

这样的事情使我部分地在那里

String mytext = " hello     there   ";

mytext = mytext.replaceAll("( )+", " ");

但不完全是

回答:

尝试这个:

String after = before.trim().replaceAll(" +", " ");

也可以看看

- String.trim()

- 返回字符串的副本,省略前导和尾随空格。

- Regular-expressions.info/重复

也可以只用一个执行此操作replaceAll,但这比trim()解决方案的可读性差得多。尽管如此,这里提供它只是为了显示正则表达式可以做什么:

    String[] tests = {

" x ", // [x]

" 1 2 3 ", // [1 2 3]

"", // []

" ", // []

};

for (String test : tests) {

System.out.format("[%s]%n",

test.replaceAll("^ +| +$|( )+", "$1")

);

}

有3个备用项:

  • ^_+:字符串开头的任意空格序列
  • 匹配并替换为$1,以捕获空字符串
  • _+$ :字符串末尾的任意空格序列
  • 匹配并替换为$1,以捕获空字符串
  • (_)+ :任何不符合上述条件的空格序列,表示它位于中间
  • 匹配并替换为$1,以捕获单个空格

以上是 Java如何用字符串中的单个空格替换2个或更多空格并删除前导和尾随空格 的全部内容, 来源链接: utcz.com/qa/427797.html

回到顶部