StringBuffer是字符串缓冲区,是一个容器,可以用于字符串的修改。
C create U update R read D delete
缓冲区的三个特点
1.长度是可变的。
2.可以字节操作多个数据类型。
3.最终会通过toString 方法变成字符串。
1. 存储
StringBuffer append() //将制定数据作为参数添加到已有数据的结尾处。
StringBUffer insert(index,str)//可以将数据插入制定index位置
2.删除
StringBuffer delete(start , end) ;//删除缓冲区中数据,包含头,不包含尾。
StringBuffer deleteCharAt(index);// 删除指定位置上的字符。
3.获取
Char charAt(int index);
int length();
int indexOf(String str);
String subString(int start,int end);
4.修改
StringBuffer replace(start , end ,String);
void setCharAt(int index ,char ch);
5.反转
StringBuffer reverse();
6.将缓冲区之制定数据存储到制定数组中
void getChars(int start ,int end,char[] ch,,int detBegin)
7.jdk a.5之后出现了StringBuilder
StringBuilder是线程不同步的。安全,多线程使用
StringBffer是线程同步的。不安全,单线程使用,提高了效率//建议使用
升级三个因素
1.提高效率
2.简化书写
3.提高安全性
例;
Class StringBufferDemo {
public static void main(String[] args){
StringBuffer sbf = new StringBufferBuffer();
StringBuffer sbf1 = sbf.append(666);
sbf.append("abc").append(true).append(666);//方法调用链
sop("======" +(sbf1 == sbf));
sop(sbf.toString());
}
public static void sop(){
System.out.println(str);
}
public static void method_del(){
StringBUffer sb = new StringBuffer("abcde");
sb.delete(1,3);
//清空缓冲区
(1)sb = new StringBuffer();
(2)sb.delete(0,sb.length())
}
}