如何删除连字符与后续字符串中的前后单词之间的所有空格?

String s = "O Jesus  -   Jesus Jesus-O -     Jesus  - O -O";
s.replaceAll("  -   ", "-"); <- This only replaces first spacy-hyphen with hyphen


我们在空格数之间的未知位置得到了带有连字符的其他搜索词。正则表达式如何处理相同的内容?同样需要全局解决方案。

需要的输出:

"O Jesus-Jesus Jesus-O-Jesus-O-O";


尝试拆分,修剪和重新合并,但是代码看起来很垃圾。需要一些捷径。

最佳答案

正则表达式将允许您指定未知数量的空格:

s = s.replaceAll("\\s*-\\s*", "-");


其中\\s*表示0或多个空格。

输出将是:O Jesus-Jesus Jesus-O-Jesus-O-O

08-03 19:44