StringBuffer相对于String操作更为复杂一点,但是其中的好处是不言而喻的,首先他的运行效率就比String快很多(节约了内存),其次他是线程安全的。
创建StringBuffer-
首先StringBuffer做为一个对象而言当然是new出来的,举例:
StringBuffer sb1=new StringBuffer("111");
System.out.println(sb1.toString());
创建sb1对象初始值为字符串111 ,如果创建一个初始值为32个字符的StringBuffer对象呢,那么StringBuffer(32)即可,初始容量为16个字符。
追加字符串-
String用+号就可以将字符串连接到一起,而StringBuffer则不同,使用append追加。
StringBuffer sb1=new StringBuffer(32);
sb1.append("你好").append("陌生人").toString();
System.out.println(sb1);
修改字符串-
public void setCharAt(int index, char ch)
公共的setCharAt方法,参数index则为该字符串的下标位置,ch则为替换的字符。
插入字符串-
sb1.append("你好").append("陌生人").toString();
System.out.println(sb1);
sb1.insert(2, ',');
System.out.println(sb1);
在中间加上一个,号。
反序-
sb1.append("人生陌").append("好你").toString();
sb1.insert(3, ',');
System.out.println(sb1.reverse());
将所有字符反序排列输出。
移除某一子字符串-
sb1.append("你好").append("陌生人").toString();
sb1.insert(2, ',');
sb1.delete(2, 3);
System.out.println(sb1);
delete(str,,end) 从某一下标开始再到某一下标结束。
StringBuilder-
于StringBuffer的使用方法一样,比StringBuffer运行效率更高,但不保障线程安全。
相同点于不同点-
StringBuffer sb1=new StringBuffer("1,2,3,4,5");
String[] str=sb1.toString().split(",");
首先sb1.tostring化成String对象再split分割,返回值为String数组,按,分割,此时数组的长度为5。
一般情况下我们根据数据具体使用的情况下对字符串进行分割,只取我们想要的,str[2] 我们只要3,数组的下标也是从0-开始。
StringBuffer sb1=new StringBuffer("abcde");
System.out.println(sb1.toString().toUpperCase());
System.out.println(sb1.toString().toLowerCase());
Upper将小写转换成大写,Lower将大写转换为小写。
String str="abcdec";
if(str.contains("c")){
System.out.println("包含");
}else{
System.out.println(str);
}
if(str.replace("c", "f").contains("c")){
System.out.println("包含");
}else{
System.out.println(str.replace("c", "f"));
}
如图,如果contains则输出包含,不包含则输出原有值。
String str="123.mp3";
boolean b=str.endsWith(".mp4");
if(b){
System.out.println("Yes");
}else{
System.out.println("No");
}
判断str是不是mp4格式的,使用endsWith方法。
String str="123.mp3";
boolean b=str.endsWith(".mp3");
boolean b1=str.startsWith("123");
boolean b2=str.startsWith("12");
boolean b3=str.startsWith("1");
boolean b4=str.startsWith("21");
System.out.println(b1+"--"+b2+"--"+b3+"--"+b4);
如图,我们看到b1 b2 b3都是符合条件的, 而最后一个21是为false的。