0126 字符串缓冲区StringBuffer类 正则表达式

在String类中,API中字符串缓冲区可支持可变字符串

StringBuffer类,就可以创建一个可变字符串

构造方法:

 

 

 例:StringBuffer s=new StringBuffer();创建一个StringBuffer对象

StringBuffer类常用方法

(1)append(String str)返回值类型是StringBuffer,是指在指定的字符串追加str字符串

例:

//添加元素
s.append("abc").append(true).append(1.6);
System.out.println(s);

运行结果

abctrue1.6

注:该方法的返回值类型就是这个对象本身,所以可以继续调用append方法

(2)delete(int start,int end)移出从start开始到end结束的字符

例:

//删除元素包头不包尾
s.delete(2, 5);
System.out.println(s);

运行结果

abue1.6

(3)insert(int offset, String str)在offset位置插入字符串str

例:

//在指定位置添加元素
s.insert(3, "你哈");
System.out.println(s);

运行结果

abu你哈e1.6

(4)replace(int start, int end, String str)将从start位置开始到end位置结束的字符串替换为str

例:

//替换包头不包尾
s.replace(0, 2, "海绵宝宝");
System.out.println(s);

运行结果

海绵宝宝u你哈e1.6

(5)reverse()倒叙输出

例:

//翻转
s.reverse();
System.out.println(s.toString());

运行结果

6.1e哈你u宝宝绵海

StringBuilder类和StringBuffer类是两个一模一样的类,只是名字不一样,构造方法和成员方法都一模一样,区别是前者比后者速度要快。

正则表达式

字符:

 x代表字符‘x’

\\代表字符‘\’

\t代表一个制表符

\n代表一个换行符

\r代表回车符

字符类:

[abc]代表abc任何一个就可以

[^abc]除了abc以外任何

[a-zA-Z]代表的是a 到 z 或 A 到 Z,两头的字母包括在内

[0-9]代表的是 0到9数字,两头的数字包括在内

[a-zA-Z_0-9]代表的字母或者数字或者下划线(即单词字符)

预定义字符类(写在规则里要多加一个\转意一下)

.代表的是任何字符

\d    \D代表的是 0到9数字,两头的数字包括在内,相当于[0-9]

\w    \W代表的字母或者数字或者下划线(即单词字符),相当于[a-zA-Z_0-9]

数量词

X?代表的是X出现一次或一次也没有

X*代表的是X出现零次或多次

X+代表的是X出现一次或多次

X{n}代表的是X出现恰好 n 次

X{n,}代表的是X出现至少 n 次

X{n,m}代表的是X出现至少 n 次,但是不超过 m 次

正则表达式实际上就是一次个字符串

(1)matches(String reg)方法含义是告知此字符串是否满足正则表达式reg返回值是布尔值

使用时通过对象调用matches方法传入规则

例:

String s="2286995636";
String reg="[1-9][0-9]{4,14}";
boolean flag=s.matches(reg);
System.out.println(flag);

例:要求为11位数字第1位为1,第2位为3、4、5、7、8中的一个,后面9位为0到9之间的任意数字

String reg1="[1][34578][0-9]{9}";
String phone="15065878317";
System.out.println(phone.matches(reg1));

(2)split(string reg)依据正则表达式reg对字符串进行拆分

例:

String s="192.168.1.171";
String reg="\\.";
String[] arr=s.split(reg);
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+"\t");
}

(3)replaceAll(String reg,String str)将满足正则表达式reg的字符替换为str

String s="hello123sds23af6ffew456dsff326fe5649f";
String reg="[0-9]+";
String str=s.replaceAll(reg, "*");
System.out.println(str);

posted @ 2021-01-26 16:18  公雪  阅读(208)  评论(0编辑  收藏  举报