前言
replace、replaceAll和replaceFirst是JAVA中常用的替换字符的方法,它们的方法定义是:
- replace(CharSequence target, CharSequence replacement) ,用replacement替换所有的target,两个参数都是字符串。
- replaceAll(String regex, String replacement) ,用replacement替换所有的regex匹配项,regex很明显是个正则表达式,replacement是字符串。
- replaceFirst(String regex, String replacement) ,基本和replaceAll相同,区别是只替换第一个匹配项。
三者的相同点和不同点
相同点
- replace和replaceAll都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串。
不同点
- replace替换的只能是字符或字符串形式,
- replaceAll和replaceFirst()是基于规则表达式(正则表达式)的替换,
- replaceAll是替换所有的,而replaceFirst()仅替换第一次出现的。
- 另外,如果replaceAll()和replaceFirst()所用的参数不是基于规则表达式的,则与replace()替换字符串的效果是一样的,即这两者也支持字符串的操作;
- 还有一点注意:执行了替换操作后,源字符串的内容是没有发生改变的
如何替换""
示例:
输出:
原因:
''在java中是一个转义字符,所以需要用两个代表一个。例如System.out.println( "" ) ;只打印出一个""。但是''也是正则表达式中的转义字符(replaceAll 的参数就是正则表达式),需要用两个代表一个。所以:被java转换成,又被正则表达式转换成。
总结:
CODE:
Java:
Regex:
结语
其实记住两点就行:
- replace替换的只能是字符或字符串形式,
- replaceAll和replaceFirst()是基于规则表达式(正则表达式)的替换,一个是替换所有,一个是替换第一个。