1

CharsetJava (またはその他のサードパーティ ライブラリ) は、正規表現ではなく、文字コード (もちろん既知の範囲内) に基づいて文字を置き換えるための API を提供しますか? たとえば、特定の文字列で二重引用符を単一引用符に置き換えるには、次のように使用できます。

String noDoubles = containsDoubles.replace("\"", "'");

ただし、二重引用符の UTF-8 文字コードはU+0022. 文字のインスタンスを検索し、U+0022それらを一重引用符に置き換えることができるものはありますか?

また、ここで二重引用符/単一引用符について尋ねるだけでなく、文字コードの検索と任意の 2 文字への置換について話しているのです。

4

3 に答える 3

5

String#replace(char, char)文字を取るオーバーロードされたバージョンを使用してください。したがって、次のように使用できます。

String str = "aa \" bb \"";
str = str.replace('\u0022', '\'');
System.out.println(str);  // aa ' bb '
于 2013-09-30T19:06:49.497 に答える
2

Unicode リテラルを使用するだけです。

// I'm using an unicode literal for "
String noDoubles = containsDoubles.replace('\u0022', '\'');

上記は、対応するコードを知っている限り、どの文字でも機能します。

于 2013-09-30T19:06:43.127 に答える
-1

まだ正規表現を使用することもできます。Javadocから:

\xhh 16 進値 0xhh を持つ文字

\uhhhh 16 進値が 0xhhhh の文字

したがって、次のように書くことができます。

String noDoubles = containsDoubles.replace("\\u0022", "'");
于 2013-09-30T19:09:15.397 に答える