package com.zzh.day2;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class demo2 {
public static void main(String[] args) {
/**
* appendReplacement() 替换当前匹配的字符串,将所有字串加入到指定的StringBuffer中
* appendTail() 将字符串尾部部分加到StringBuffer中
* */
String string = "Java jaVa JAvA IloveJaVa youhatejAvA 法发大水发大水发大水发";
// Pattern pattern = Pattern.compile("[Jj][aA][Vv][Aa]");
// Matcher matcher = pattern.matcher(string);
// System.out.println(matcher.replaceAll("JAVA"));
Pattern p = Pattern.compile("java",Pattern.CASE_INSENSITIVE);//忽略大小写CASE_INSENSITIVE
Matcher m = p.matcher(string);
StringBuffer buffer = new StringBuffer();
int i = 0;
while(m.find()){
if(i%2 == 0){
m.appendReplacement(buffer, "java");
}else{
m.appendReplacement(buffer, "JAVA");
}
i++;
}
System.out.println(buffer);
m.appendTail(buffer);
// System.out.println(m.replaceAll("JAVA"));
System.out.println(buffer);
}
}
代码在做什么:
将字符串里面所有的java改成大写。
输出结果:
java JAVA java IloveJAVA youhatejava
java JAVA java IloveJAVA youhatejava 法发大水发大水发大水发
第一行结果没有写m.appendTail(buffer);
可以这么写正则表达式[Jj][aA][Vv][Aa]
在java中可以这么创建一个Pattern对象
Pattern p = Pattern.compile(“java”,Pattern.CASE_INSENSITIVE);
CASE_INSENSITIVE//忽略大小写