matcher.appendReplacement() 与 matcher.appendTail()的区别

         matcher.appendReplacement() 与 matcher.appendTail()的区别

要说明这两个方法的区别最简单也最直接的方法就是上例子:

package com.it.test;

 

import java.util.regex.Matcher;

import java.util.regex.Pattern;

 

public class regex_test2 {

 

public static void main(String args[]) {

String mail = "abcabcA@163.com";

Pattern pattern = Pattern.compile("a",Pattern.CASE_INSENSITIVE);

Matcher m = pattern.matcher(mail);

StringBuffer sb = new StringBuffer();

while(m.find())

m.appendReplacement(sb, "b");

//m.appendTail(sb); //注视掉这句的结果是bbcbbcb

System.out.println(sb.toString()); //不注释掉上句的结果是bbcbbcb@163.com

}

 

}

简单的讲讲,用matcher.appendReplacement( sb, "b")就是在Matcher.find()找到匹配的地方用“b”替换掉然后加进StringBuffer中去,这时后面可能还有字符串但是不匹配的,就像例子中@163.com是匹配到最后一个a结束的地方如果这时输出就是bbcbbcb。 matcher.appendTail()就是把@163.com加上而已

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值