JAVA中string.replace和string.replaceAll的区别及用法
java中string.replace和string.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 · 百度知道合伙人官方认证企业
2)replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号;
推荐于2017-08-16
~