2017-10-19 1 views
1

を検索と置換、私は%を交換しようとしていますが、それは私がすべてのこのReplace symbol "%" with word "Percent"何が私のために働いていない試してみましたのJavaは、Java 1.8.0 で%

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

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

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

に一致していません。前もって感謝します。

+0

:あなたが使用する必要があると、そのような通常replace方法です。 –

+1

'replaceAll'は元の' String'オブジェクトを変更しません。代わりに、結果は新しい 'String'オブジェクトとして返されます。 – Alex

答えて

4

これは機能しています。 あなたがstr

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

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

Jerry06's answerに再割り当てる必要が正しいです。

しかし、これらのユニコード値をデコードするには、URLDecoderを使用するだけで簡単に実行できます。

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

の出力は以下となります。

(Hello Worldの!)

0

問題は、あなたがreplaceallの使い方を誤解していることです。これは、正規表現ベースの置換えです。あなたが実際に正規表現と一致する必要がない場合は、 `replace`を使用し

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

str=str.replace("%29", "\\)"). replace("%28", "\\("); 
System.out.println("Replaced string is " + str); 
関連する問題