2017-10-19 148 views
1

在java中1.8.0 我試圖取代%,但它不匹配java查找和替換%

String str = "%28Sample text%29"; 

    str.replaceAll("%29", "\\)"); 

    str.replaceAll("%28", "\\("); 
    System.out.println("Replaced string is " + str); 

我已經嘗試了所有這Replace symbol "%" with word "Percent"沒有爲我工作。提前致謝。

+0

使用'replace'你實際上並不需要匹配一個正則表達式。 –

+1

'replaceAll'不會對原始'String'對象進行任何更改。相反,結果將作爲新的String對象返回。 – Alex

回答

4

它的工作。 您需要重新分配給str

str = str.replaceAll("%29", "\\)"); 

    str = str.replaceAll("%28", "\\("); 
0

Jerry06's answer是正確的。

但是你可以簡單地使用URLDecoder來解碼這些unicode值。

String s = "%28Hello World!%29"; 
s = URLDecoder.decode(s, "UTF-8"); 
System.out.println(s); 

將輸出:(您好!世界)

0

的問題是,你誤會的replaceall使用。這是基於正則表達式的替換。你需要使用什麼是正常replace方法類似:如果

String str = "%28Sample text%29"; 

str=str.replace("%29", "\\)"). replace("%28", "\\("); 
System.out.println("Replaced string is " + str);