一、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("\\", "++"));replaceAll的参数就是regex,是正则表达式。首先会转义,所以报错。可改为如下代码:
System.out.println(x.replaceAll("\\\\", "++"));总结:当字符串无法确定是否具有转义字符时,而且也不需要转义时,建议使用replace函数;否则,使用replaceAll函数