首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字符串替换为字符代码而不是正则表达式?

将字符串替换为字符代码而不是正则表达式?
EN

Stack Overflow用户
提问于 2013-10-01 03:05:02
回答 3查看 3.6K关注 0票数 1

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

代码语言:javascript
复制
String noDoubles = containsDoubles.replace("\"", "'");

但是,双引号的UTF8字符代码是U+0022。那么有没有什么东西可以搜索U+0022字符的实例并用单引号替换它们呢?

此外,这里不只是询问双引号/单引号,我讨论的是字符代码查找和任意2个字符的替换。

EN

回答 3

Stack Overflow用户

发布于 2013-10-01 03:06:49

使用重载的version - String#replace(char, char),它接受字符。所以,你可以这样使用它:

代码语言:javascript
复制
String str = "aa \" bb \"";
str = str.replace('\u0022', '\'');
System.out.println(str);  // aa ' bb '
票数 5
EN

Stack Overflow用户

发布于 2013-10-01 03:06:43

只需使用unicode文本:

代码语言:javascript
复制
// I'm using an unicode literal for "
String noDoubles = containsDoubles.replace('\u0022', '\'');

上面的代码适用于任何字符,只要你知道它对应的代码。

票数 2
EN

Stack Overflow用户

发布于 2013-10-01 03:09:15

您还可以使用正则表达式。从Javadoc

\xhh十六进制值为0xhh的字符

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

因此,你可以这样写:

代码语言:javascript
复制
String noDoubles = containsDoubles.replace("\\u0022", "'");
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19101824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档