Java replace和replaceAll

package test;

public class ReplaceTest {
    
    public static void main(String[] args) {
        String str1="notice/PublishingImages/第26期(20181112).pdf";
        String str2="notice/PublishingImages/第26期(20181112).pdf";
        String str3="123456.pdf";
        System.out.println("replace:"+str1.replace(str2, str3));//结果:123456.pdf
        System.out.println("replaceAll:"+str1.replaceAll(str2, str3));//结果:notice/PublishingImages/第26期(20181112).pdf
        //此时replaceAll并未出现期待的结果。为什么?
        //replace和replaceAll相同点和区别?
        //1、相同点:替换所有匹配的字符串(都是替换所有)
        //2、不同点:
        //replace支持字符替换,字符串替换
        //replaceAll是正则表达式替换
        String t1="\\";
        System.out.println(t1.replace("\\", "斜杠"));
        System.out.println(t1.replaceAll("\\\\", "斜杠"));
        try{
            System.out.println(t1.replaceAll("\\", "斜杠"));//正则表达式异常    
        }catch(Exception e){
            System.out.println(e.getMessage());
        }
        //那么notice/PublishingImages/第26期(20181112).pdf怎么用replaceAll替换成123456.pdf呢?
        String str2_new="notice/PublishingImages/第26期\\(20181112\\)\\.pdf";
        //注意正则表达式对特殊字符的转义:'$', '(', ')', '*', '+', '.', '[', ']', '?', '\\', '^', '{', '}', '|'
        System.out.println("replaceAll:"+str1.replaceAll(str2_new, str3));
    }

}

 

转载于:https://www.cnblogs.com/xmqa/p/10275810.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值