删除字符串中 - 前后的 space

remove space before and after - in the string

我正在尝试删除 string.To 中的多余空格实现此目的我在 StringUtils class 中使用了 normalizeSpace 方法。但问题是它没有去掉“-”前后的空格

public static void main(String[] args)
{
String test = "  Hi   -  World    Java";
System.out.println(StringUtils.normalizeSpace(test));
}

输出为:“Hi - World Java”预期输出为:“Hi-World Java”

有任何输入吗?

注意:下面的票证解决方案是在连接字符串期间。我们在单个字符串中有数据。所以这张票不是重复票。 Remove spaces before a punctuation mark in a string

test = test.replaceAll("[  ]+"," ");
test = test.replaceAll("- ","-");
test = test.replaceAll(" -","-");
test = test.replaceAll("^\s+",""); 

该实用程序删除所有额外的 space,但留下一个 space。换句话说,如果它找到一个以上的序列 space,它会删除除一个 space 之外的所有序列。所以你的结果符合预期。如果您按照您写的方式需要它:“Hi-World Java”,那么您需要自己的逻辑,正如此处其他一些答案中所指定的那样。