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