JAVA中string.replace和string.replaceAll的区别及用法

 我来答
白卡PALA
2017-07-22 · 知道合伙人软件行家
白卡PALA
知道合伙人软件行家
采纳数:648 获赞数:3420
性能测试4年工作经验。

向TA提问 私信TA
展开全部

java中string.replacestring.replaceAll都是对字符串内容进行替换的常用函数:

replace(CharSequence target, CharSequence replacement)

Returns a new string resulting from replacing all occurrences
of oldChar in this string with newChar.

replaceAll(String regex,
String replacement)

Replaces each substring of this string that matches the given
regular expression with the given
replacement.

虽然在大多数的场景下,使用两种函数得到的结果一样,但是实际上还是有一定区别的:

replaceAll函数中被替换参数是regex,是正则表达式。如果传入的是正则表达式中的特殊字符,则需要进行转义,否则会报错,而且在很多复杂的场景中,使用正则表达式也非常灵活;

而replace函数中被替换参数可以是char,也可以是CharSequence(即字符串序列):支持字符替换也支持字符串替换。

在大量且复杂的字符串替换场景下,建议使用replaceAll函数而不是replace函数,因为实际上replace函数里面仍然是使用了replaceAll函数,所以replaceAll会比replace处理效率稍微快点。

如果被替换的字符串无法确定是否具有转义字符时,而且也不需要转义时,建议使用replace函数。

育知同创教育
2016-07-22 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);
2)replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2017-08-16
展开全部
前者参数是字符串,后者参数是正则表达式

~
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式