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

如题所述

一、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函数

温馨提示:答案为网友推荐,仅供参考
相似回答