如何使用Java或正则表达式删除字符串中连字符的前后空格?

如何使用Java或正则表达式删除字符串中连字符的前后空格?,java,regex,string,Java,Regex,String,如何删除以下字符串中连字符和前后单词之间的所有空格 String s = "O Jesus - Jesus Jesus-O - Jesus - O -O"; s.replaceAll(" - ", "-"); <- This only replaces first spacy-hyphen with hyphen 尝试过拆分、修剪和连接,但代码看起来像垃圾。需要一些快捷方式。正则表达式允许您指定未知数量的空格: s = s.replaceAll("\\s*-\\s

如何删除以下字符串中连字符和前后单词之间的所有空格

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

尝试过拆分、修剪和连接,但代码看起来像垃圾。需要一些快捷方式。

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

s = s.replaceAll("\\s*-\\s*", "-");
其中,
\\s*
表示0个或多个空格


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

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

s = s.replaceAll("\\s*-\\s*", "-");
其中,
\\s*
表示0个或多个空格


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

您想要什么输出?
s.replaceAll(“\\s*-\\s*”,“-”)应该做@YCF_L:更新了输出说明。您尝试了什么?你刚刚放弃了要求?!尝试过拆分、修剪并重新连接,但代码看起来很垃圾:(您想要什么输出?
s.replaceAll(“\\s*-\\s*”,“-”);
应该这样做!@YCF\u L:更新了输出说明。您尝试过什么?您刚刚放弃了需求?!尝试过拆分、修剪并重新连接,但代码看起来很垃圾:(非常感谢。在另一种情况下,是否有任何方法可以避免删除已连接到“O-God-My-God”之类的单词的连字符的空格,如
\\s*
-->
\\s+
此解决方案忽略了“前面和后面的单词”要求。它会将
-Yes.
替换为
-Yes.
并将
No-
替换为
No-
。这可能不是问题。非常感谢。在另一种情况下,有没有办法避免删除已连接到“O-上帝-我的上帝”等单词的连字符的空格
\\s*
-->
\\s+
此解决方案忽略了“前后单词”的要求。它将
-Yes.
替换为
-Yes.
否-
替换为
否-
。这可能不是问题。