(1)字符串replace replaceAll replaceFirst的区别

前言:

今天大概来讲一下replace replaceAll replaceFirst这三者的区别。

replace replaceAll replaceFirst相同点:

  • 1.都用于字符串的替换。

replace replaceAll replaceFirst不同点:

  • 1.replace的参数是char和CharSequence(图一)  ,replaceAll 的参数是regex(图三)
  • 2. replaceAll支持正则表达式,因此会对参数进行解析(两个参数均是),如replaceAll("\\d", "*"),而replace则不会,replace("\\d","*")就是替换"\\d"的字符串,而不会解析为正则。 
  • 3.替换第一次出现的字符串用 replaceFirst 

replace

(图一)

replaceAll 

(图三)

 例子1:

package com.test.nodefault;

/**
 * @Author tanghh
 * 测试replace replaceAll  replaceFirst
 * @Date 2020/2/24 9:13
 */
public class Test2 {
   public static void main(String[]args){


       String c = "test#aa#txt";
       String c1 = c.replace("#","|");
       String c2 = c.replaceAll("#","|");
       String c3 = c.replaceFirst("#","|");
       System.out.println("c1-------"+c1+"------------c2-------"+c2+"-----"+"---c3-------"+c3);
       System.out.println("------------------------------------------------------");
       String b = "test.aa.txt";
       String b1 = b.replace(".","|");
       String b2 = b.replaceAll(".","|");
       String b3 = b.replaceFirst(".","|");
       System.out.println("b1-------"+b1);
       System.out.println("b2-------"+b2);
       System.out.println("b3-------"+b3);
   }


}

效果图1:

例子1总结:

  • 1. 这么一看过去,b2的值应该是test|aa|txt  。 但是“.”是正则表达式的元字符,匹配除换行符以外的任意字符,所以replaceAll、replaceFirst才出现了这样的结果。而replace是正常的。
  • 正则表达式可以再复习一下: https://www.runoob.com/regexp/regexp-syntax.html

例子2:

下面这个例子:字符串的替换发现值没有替换掉这是为什么呢?

查看源代码发现: 返回替换方法返回的是一个新字符串,需要用变量重新接收一下。

发布了54 篇原创文章 · 获赞 49 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/tangthh123/article/details/104472002