Java中String的replace、replaceAll和replaceFirst

前言

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相同,区别是只替换第一个匹配项。

三者的相同点和不同点

相同点

  • replacereplaceAll都是全部替换,即把源字符串中的某一字符字符串全部换成指定的字符或字符串。

不同点

  • replace替换的只能是字符或字符串形式,
  • replaceAll和replaceFirst()是基于规则表达式(正则表达式)的替换,
  • replaceAll是替换所有的,而replaceFirst()仅替换第一次出现的。
  • 另外,如果replaceAll()和replaceFirst()所用的参数不是基于规则表达式的,则与replace()替换字符串的效果是一样的,即这两者也支持字符串的操作;
  • 还有一点注意:执行了替换操作后,源字符串的内容是没有发生改变的

如何替换"\"

示例:


image.png

输出:


image.png

原因

'\'在java中是一个转义字符,所以需要用两个代表一个。例如System.out.println( "\\" ) ;只打印出一个"\"。但是''也是正则表达式中的转义字符(replaceAll 的参数就是正则表达式),需要用两个代表一个。所以:\\被java转换成\,\\又被正则表达式转换成\。

总结
  CODE: \\\\
  Java: \\
  Regex: \

结语

其实记住两点就行:

  • replace替换的只能是字符或字符串形式,
  • replaceAll和replaceFirst()是基于规则表达式(正则表达式)的替换,一个是替换所有,一个是替换第一个。

你可能感兴趣的:(Java中String的replace、replaceAll和replaceFirst)