2020-11-19 replace与replaceAll的区别

replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);

replaceAll的参数是regex,即基于规则表达式的替换,比如:可以通过replaceAll("\d", "*")把一个字符串所有的数字字符都换成星号;

replaceAll支持正则表达式,因此会对参数进行解析(两个参数均是),如replaceAll("\d", ""),
而replace则不会,replace("\d","
")就是替换"\d"的字符串,而不会解析为正则。

另外还有一个:“\”在java中是一个转义字符,所以需要用两个代表一个。例如System.out.println( "\" ) ;只打印出一个""。
但是“\”也是正则表达式中的转义字符,需要用两个代表一个。
所以:\\被java转换成\,
\又被正则表达式转换成\,
因此用replaceAll替换“\”为"\",
就要用replaceAll("\\","\\\\"),而replace则replace("\","\\")。

你可能感兴趣的:(2020-11-19 replace与replaceAll的区别)