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 = "[email protected]";

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()); //不注释掉上句的结果是[email protected]

}

}

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

猜你喜欢

转载自superior-lyh.iteye.com/blog/2257733
今日推荐