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

标签 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**

如何使替换忽略由空格包围的单破折号?

最佳答案

您可以使用以下行

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

而不是调用replaceAll。它将所有连续的空格与破折号结合在一起,并用单个破折号替换它们。

关于java - 替换子字符串时如何避免重复替换字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8768166/

相关文章:

jquery - 在设定时间后更换 <DIV>

Python 不替换 % 符号

java - 这是替换 Java 对象的最佳方法吗?

java - 尝试更改 JavaFX 应用程序图标时出错

java - java过滤器如何判断请求是否被转发?

java - 为 CopyOnWriteArrayList 中的添加操作获取锁

linux - 如何修改 Perl 或 shell 脚本中的 shebang 行?

powershell - PowerShell 的正则表达式无法与/n(换行符)一起使用

java - 如何用Java实现我自己的LinkedList<LinkedList>数据结构?

java - 正则表达式从响应中获取特定字符串