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);