【发布时间】:2020-10-29 12:03:06
【问题描述】:
我需要从字符串中删除所有空格,除了前导空格。
我有一些看起来像这样的字符串:
" h ello"
我正在努力实现这一目标:
" hello"
这就像一个相反的trim()。
最有效的方法是什么?
【问题讨论】:
我需要从字符串中删除所有空格,除了前导空格。
我有一些看起来像这样的字符串:
" h ello"
我正在努力实现这一目标:
" hello"
这就像一个相反的trim()。
最有效的方法是什么?
【问题讨论】:
您可以将 replaceAll 与此正则表达式 (?<=\S)(\s+)(?=\S) 一起使用,如下所示:
str = str.replaceAll("(?<=\\S)(\\s+)(?=\\S)", "");
输入和输出示例:
" h ello " => " hello "
" hello, word " => " hello,word "
第一个正则表达式只保留前导和尾随空格,如果您只想保留前导空格,则可以使用此正则表达式(?<=\S)(\s+)。
输入和输出示例:
" hello " => " hello"
" hello, word " => " hello,word"
【讨论】:
(?=\\S) 防止删除尾随个空格,但它只应保留前导个空格。