(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:

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

 

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值