Java(或任何其他第三方lib)是否提供了基于字符代码替换字符的API(当然,在已知的Charset
内)而不是正则表达式?例如,要用给定字符串中的单引号替换双引号,可以使用:
String noDoubles = containsDoubles.replace("\"", "'");
然而,双引号的UTF-8字符代码为U+0022
。那么有什么能够搜索U+0022
个字符的实例并用单引号替换它们吗?
此外,这里不只是询问双/单引号,我在谈论字符代码查找和替换任意2个字符。
答案 0 :(得分:5)
使用带有字符的重载版本 - String#replace(char, char)
。所以,你可以像这样使用它:
String str = "aa \" bb \"";
str = str.replace('\u0022', '\'');
System.out.println(str); // aa ' bb '
答案 1 :(得分:2)
只需使用unicode文字:
// I'm using an unicode literal for "
String noDoubles = containsDoubles.replace('\u0022', '\'');
以上内容适用于任何角色,只要您知道相应的代码即可。
答案 2 :(得分:-1)
您还可以使用正则表达式。来自Javadoc:
\ xhh十六进制值为0xhh
的字符\ uhhhh十六进制值为0xhhhh
的字符
因此你可以这样写:
String noDoubles = containsDoubles.replace("\\u0022", "'");