1

Java(或任何其他第 3 方库)是否提供 API 用于根据字符代码(Charset当然在已知范围内)而不是正则表达式替换字符?例如,要将给定字符串中的双引号替换为单引号,可以使用:

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 十六进制值为 0xhh 的字符

\uhhhh 十六进制值为 0xhhhh 的字符

因此你可以这样写:

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