2008-11-18 175 views
1

我有以下字符串字符串替換功能

String str = "replace :) :) with some other string"; 

我想替換的:)第一次出現與其他一些字符串

而且我用str.replaceFirst(":)","hi");

它提供了以下異常

「無與倫比的關閉」)「」

我試過用replace函數,但是它取代了所有的:)

回答

10

replaceFirst方法將正則表達式作爲其第一個參數。由於)是正則表達式中的特殊字符,因此您必須引用它。請嘗試:

str.replaceFirst(":\\)", "hi"); 

需要雙反斜槓,因爲雙引號字符串也使用反斜槓作爲引號字符。

+0

我想也是用這個,但它拋出同樣的異常...... – user25778 2008-11-18 09:26:58

5

replaceFirst()的第一個參數是一個正則表達式,而不僅僅是一個字符序列。在正則表達式中,缺口具有特殊意義。你應該逃避paranthesis這樣的:

str = str.replaceFirst(":\\)", "hi");