2014-02-20 110 views
4

這是以某種方式重複出現的問題Ruby - replace the first occurrence of a substring with another string just in java。Java僅替換字符串中第一次出現的子串

問題是:

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

現在我想更換一個(也是唯一第一)"ha""gurp"

"gurp bla ha ha" 

string.replace("ha", "gurp")不起作用,因爲它取代了所有的"ha"

+5

你讀過那篇關於'串#replaceFirst'?或者如果你不想使用正則表達式[StringUtils#replaceOnce(..)] [1] [1]:(http://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org /apache/commons/lang/StringUtils.html#replaceOnce(java.lang.String,java.lang.String,java.lang.String)) – nachokk

+0

閱讀javadoc非常有用。 – 2014-02-20 18:52:41

回答

7

嘗試the replaceFirst method。它使用正則表達式,但文字序列"ha"仍然有效。

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

但是如果你想替換一個字面點呢? OP的例子是玩具,不反映現實世界的邊緣情況。 –

+0

@ Sridhar-Sarnobat「\\」。 –

2

使用replaceFirst()嘗試(可自從Java 1.4),它只是你需要什麼:

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

你應該使用已經測試過,有據可查庫贊成編寫自己的代碼!

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

(從如何在Java中沒有正則表達式只更換一次字符串複製?)

相關問題