2011-03-07 95 views
1

我有一個Java String這樣刪除兩個以上連續發生

String str="&P;&P;&P;&P;&P;&P;&P;&P;&P;&P;&P;&P; Tannay Mnadal &P;&P;&P;&P;&P;&P; Tata" 

我想刪除所有&P;在連續發生的兩成以上。

即。任何function(str),將返回"&P;&P;" Tannay Mnadal &P;&P; Tata

任何幫助將不勝感激。 感謝

回答

3
str = str.replaceAll("&P;&P;(&P;)+", "&P;&P;"); 
+0

@jzd:雅我發佈後,我的整個網絡都關閉了。剛剛從我的智能手機上修復它。儘管如此,我更喜歡範圍操作員。 – 2011-03-07 16:44:44

+0

@jzd:實際上它滿足了三個或更多的要求(他說「超過兩個」),但@Tanmay說他想刪除所有**'&P;',其中有兩個或更多,這就是我原本給了。但他的例子表明,他想除去兩個**'&P;'以外的所有**。 – 2011-03-07 16:49:15

+0

是的,我現在看到他的要求與他的例子不符。 – jzd 2011-03-07 17:05:23

3

使用正則表達式與replaceAll()

喜歡的東西:

​​
1

您可以嘗試使用正則表達式替換:

public String function(String str) 
{ 
    return str.replaceAll("&P;&P;(&P;)+", "&P;&P;"); 
    // I understood you wanted to keep two times "&P;" 
} 
+0

+1。因爲我必須只接受一個答案 – 2011-03-07 17:54:46

1

你可以實現你想要的正則表達式很容易:

public String removeOcurrences(String input) { 

    return input.replaceAll("(&P;&P;)(?:&P;)*", "$1"); 
} 

希望它有幫助。

問候。

+0

+1。因爲我必須只接受一個答案 – 2011-03-07 17:53:58