截取字符串
public static void main(String[] args) {
//split截取字符串
String str="xiao,jian,bin";
String reg=",";
String[]arrs=str.split(reg);
for (String string : arrs) {
// System.out.println(string);
}
String str2="xiao jian bin";
String reg2=" +";//reg2表示“空格+”,在这里’+‘跟在空格“ ”后面表示一个或多个空格
String[]arrs2=str.split(reg);
for (String string : arrs2) {
// System.out.println(string);
}
String str3="xiao.jian.bin";
//表示用’.‘切割,因为’.‘是特殊字符,所以用斜杠’\.‘,因为’\‘也是特殊字符,所以“\\.”
String reg3="\\.";
String[]arrs3=str3.split(reg3);
for (String string : arrs3) {
// System.out.println(string);
}
String str4="c:\\abc\\sa.txt";
//使用'\'匹配,需要“\\”,同理“\\”来匹配,则“\\\\”
String reg4="\\\\";
String[]arrs4=str4.split(reg4);
for (String string : arrs4) {
// System.out.println(string);
}
String str5="xiaokkkjianeeeeeebin";
//这里运用“组”的概念:“()”,可让该规则可重用,’.‘表示任意字符,
//"(.)\\1+"第一个字符为任意字符,“\1“表示第二个和第一个字符一致,因’\‘为特殊字符所以“\\1“,
//后面跟一个’+‘表示第二个字符出现一次或多次
String reg5="(.)\\1+";
String[] arrs5=str5.split(reg5);
for (String string : arrs5) {
System.out.println(string);
}
}
//替换字符串
public static void main(String[] args) {
//repalceAll替换所有
String strings="80320080ifief8909sdfslf989080080808";
//第一位为数字,以后出现的数字个数大于5或等于5位
String mode="\\d{5,}";
String afterStr=strings.replaceAll(mode, "*");
System.out.println(afterStr);//*ifief8909sdfslf*
String strings2="sajdflkkkkkewfljslfeeeeee";
//第一位为数字,以后出现的数字个数大于5或等于5位
String mode2="(.)\\1+";
String afterStr2=strings2.replaceAll(mode2, "&");
System.out.println(afterStr2);//sajdfl&ewfljslf&
String strings3="sajdflkkkkkewfljslfeeeeee";
//第一位为数字,以后出现的数字个数大于5或等于5位
String mode3="(.)\\1+";
String afterStr3=strings3.replaceAll(mode3, "$1");
System.out.println(afterStr3);//sajdflkewfljslfe,叠词部分变为一个字符
}
//判断是否匹配
public static void main(String[] args) {
//Matches匹配
String s="a3333";
//‘^'以什么字符开头,'$'以什么字符结束,'*'标示出现一次或者多次,"\d"标示整数,需要用'\'转义
String mode="^[a-z]\\d*$";
System.out.println(s.matches(mode));//结果:true
String num="123456";
//确定第一位是整数"[0-9]","\d{5,14}"表示出现5位到14位整数
String mode2="[0-9]\\d{5,14}";
System.out.println(num.matches(mode2));//结果:true
//电话号码号段匹配13xxxx,15xxxx,18xxxx
String telNum="13588889999";
//第一位"[0-9]"数字,第二位“[3,8,5]”为其中的一位,”\d{9}“后面9位为整数
String mode3="[0-9][3,8,5]\\d{9}";
System.out.println(telNum.matches(mode3));//结果:true
}
//matcher,Pattern
public static void main(String[] args) {
/**
* 匹配*/
String reg="[0-9]\\d{5,12}";//规则
String str="123456";
//三步曲
//1,将规则封装成正则对象
Pattern pattern=Pattern.compile(reg);
//2,让正则对象和要作用的对象关联起来,获取匹配器对象
Matcher matcher=pattern.matcher(str);
//字符串匹配功能
boolean flag=matcher.matches();
System.out.println(flag);
/**
* 将三个字符组成的单词取出*/
String str2="wolll shi zhong guo chan dang";//规则
// “\b” 表示边界
String reg2="\\b[a-z]{3}\\b";
Pattern pattern2=Pattern.compile(reg2);
Matcher matcher2=pattern2.matcher(str2);
//matcher2.find()规则作用在字符串上之后,并对符合规则的子字符串进行查找
//matcher.group()获取匹配后的字符串
//matcher2.start()返回子字符串的开始索引
//matcher2.end()返回子字符串的结束索引
while (matcher2.find()) {
System.out.println(matcher2.group());
System.out.println(matcher2.start()+"----"+matcher2.end());
/**
* 结果: shi
6----9
guo
16----19*/
}
}
public static void main(String[] args) {
String string="我我我....要要要....学学.....编....程程程程";
//用“”代替所有的点号
String string2=string.replaceAll("\\.+", "");//"\\.+"表示一个点或者多个点
System.out.println(string2);//结果:“我我我要要要学学编程程程程”
String string3=string2.replaceAll("(.)\\1+","$1");//用本组的第一个替换本组
System.out.println(string3);//结果:我要学编程
}