如何在替换子字符串时避免重复替换字符

时间:2012-01-07 07:41:34

标签: java replace

我在数据库中有以下字符串

**final test project - test decorations**

我想用破折号替换空格( -字符)。这就是我到目前为止所做的:

tit1 = rs.getString("title");
tit1 = tit1.replaceAll("\\s{1}", "-");

输出看起来像这样

**final-test-project---test-decorations**
  **shadow-of-the-test----test**

但我希望像这样输出

**final-test-project-test-decorations**
   **shadow-of-the-test-test**

如何让替换忽略用空格包围的单个短划线?

1 个答案:

答案 0 :(得分:5)

您可以使用以下一行

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

而不是您对replaceAll的通话。它将所有连续的空格与破折号一起使用,并用一个破折号替换它们。