java replace()和replaceAll()的区别

replace(oldStr, newStr)把oldStr和newStr当做是普通字符串,而replaceAll(oldStr, newStr)把oldStr和newStr当做是正则表达式,例如:

		String s = "i\\love\\xuecong";
		System.out.println(s.replaceAll("\\\\", "\\\\\\\\"));
		System.out.println(s.replace("\\", "\\\\"));

结果都是 i\\love\\xuecong。

前者经过2次转义:java自带的转义和正则表达式转义,最终结果是把\替换成\\,而s经过java自带的转义,实际是"i\love\xuecong";

后者经过1次转义:java自带的转义,最终也是把\替换成\\;

每一对\\不管是java自带转义还是正则表达式转义,都转成\。

注:二者都是返回一个新串,所以一定要将新串赋给原来的变量(如,str = str.replace(, )),否则(如,str.replace(, ))是不起作用的;

你可能感兴趣的:(java replace()和replaceAll()的区别)