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

 我来答
育知同创教育
2016-03-27 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
JAVA中string.replace和string.replaceAll的区别及用法:
1、jdk中对string.replace的定义:
public String replace(char oldChar,char newChar)
返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 而生成的。 如 果 oldChar 在此 String 对象表示的字符序列中没有出现,则返回对此 String 对象的引用。否则,创建一个新的 String 对象,用来表示与此 String 对象表示的字符序列相等的字符序列,除了每个出现的 oldChar 都被一个 newChar 替换之外。
2、jdk中对string.replaceAll的定义:
public String replaceAll(String regex,String replacement)使用给定的 replacement 字符串替换此字符串匹配给定的正则表达式的每个子字符串。此方法调用的 str.replaceAll(regex, repl) 形式产生与以下表达式完全相同的结果:
Pattern.compile(regex).matcher(str).replaceAll(repl)
参数:
regex - 用来匹配此字符串的正则表达式
返回:得到的 String
抛出: PatternSyntaxException - 如果正则表达式的语法无效。
实际应用举例:
public static void main(String[] arg) throws OgnlException {
String s ="sdf\\a\\aa";
//把s中的反斜杠\ 替换为\\
System.out.println(s);
System.out.println(s.replaceAll("\\\\", "\\\\\\\\"));
System.out.println(s.replace("\\", "\\\\"));
}
可以看出上面两种都返回相同的替换结果。
青鸟中关村专家
2016-04-10 · 知道合伙人软件行家
青鸟中关村专家
知道合伙人软件行家
采纳数:1734 获赞数:8437
就职于北大青鸟中关村,自2004年踏入北大青鸟这个行业,已经有11年工作经验和8年的培训经验,寓教于乐

向TA提问 私信TA
展开全部

一、replace和replaceAll的区别

    1、参数区别

        1)    replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串)
        2)    replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号

    2、使用转义字符进行替换时候的区别

        1)replace可以直接使用转义字符进行替换,例如:

         System.out.println(x.replace("\\", "++")); //没有问题

        2)replaceAll不可以直接使用转义字符进行替换,例如:    

        System.out.println(x.replaceAll("\\", "++"));  
        //报错 java.util.regex.PatternSyntaxException

    replaceAll的参数就是regex,是正则表达式。首先会转义,所以报错。可改为如下代码:

        System.out.println(x.replaceAll("\\\\", "++"));

    总结:当字符串无法确定是否具有转义字符时,而且也不需要转义时,建议使用replace函数;否则,使用replaceAll函数

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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式