【问题标题】:Java replace only first occurrence of a substring in a stringJava 仅替换字符串中第一次出现的子字符串
【发布时间】:2014-03-21 22:21:41
【问题描述】:

这在某种程度上是这个问题 Ruby - replace the first occurrence of a substring with another string 在 java 中的重复。

问题是:

我有一个字符串:"ha bla ha ha"

现在我想用"gurp" 替换第一个(也是唯一一个)"ha":

"gurp bla ha ha"

string.replace("ha", "gurp") 不起作用,因为它会替换所有 "ha"s。

【问题讨论】:

标签: java string replace


【解决方案1】:

试试the replaceFirst method。它使用正则表达式,但文字序列"ha" 仍然有效。

string.replaceFirst("ha", "gurp");

【讨论】:

  • 但是如果你想替换一个文字点怎么办? OP 的例子是一个玩具,不能反映现实世界的边缘情况。
  • @Sridhar-Sarnobat "\\."
【解决方案2】:

尝试使用replaceFirst()(自Java 1.4 起可用),它可以满足您的需要:

string = string.replaceFirst("ha", "gurp");

【讨论】:

    【解决方案3】:

    您应该使用已经过测试且记录良好的库来编写自己的代码!

    StringUtils.replaceOnce("aba", "a", "")    = "ba"
    

    (抄自How to replace string only once without regex in Java?)

    【讨论】:

      猜你喜欢
      • 2011-08-25
      • 2016-12-19
      • 2016-05-07
      • 2020-05-22
      • 2021-04-17
      • 2019-12-12
      • 1970-01-01
      相关资源
      最近更新 更多