这段代码是正则匹配单个大写字母,并对字符串进行操作。
m.find() 是找到匹配的那一项,可以理解为一个指针,指到匹配的位置,
m.group()则是得到指向的值。
m.appendReplacement(arg1,arg2)
第一个参数是一个StringBuffer。
第二个参数是在m.find()的位置后添加的字符串。
此方法的作用是将m.find()指向位置前边的字符串和arg2参数 加在一起放到 StringBuffer里。
m.appendTail(arg1)
参数为StringBuffer 。
此方法的作用是将m.find()后的字符串加到StringBuffer
public static void main(String[] args) throws Exception{
Pattern p = Pattern.compile("[A-Z]");
String name= "userTest";
Matcher m = p.matcher(name);
StringBuffer sb = new StringBuffer();
while(m.find()) {
m.appendReplacement(sb, "_");
String r = m.group();
}
m.appendTail(sb);
System.out.println(sb.toString());
}
}