/*
StringBuffer是字符串缓冲区。
特点:
1.是一个容器。而且长度时刻变化的。
2.可以直接操作多个数据类型。
3.最终会通过toString()方法变成字符串。
C create R read U update D delete
1.存储。
StringBuffer append();将指定数据作为参数添加到已有数据的结尾处。
StringBuffer insert(int offset,数据);可以将数据插入指定位置。
2.删除。
StringBuffer delete(int start,int end);删除缓冲区中的数据,包含start,不包含end。
StringBuffer deleteCharAt(int index);删除指定位置的元素。
3.获取。
char charAt(int index);
int indexOf(String str);
int lastIndexOf(String str);
int length();
String substring(int start,int end);
4.修改。
StringBuffer replace(int start,int end,String str);
void setCharAt(int index,char ch);
5.反转。
StringBuffer reverse();
6.将缓冲缓冲区中指定数据存储到指定字符数组中。
void getChars(int srcBegin,int srcEnd,char[]dst,int dstBegin);
--srcBegin:缓冲区开始位置,srcEnd:缓冲区结束位置,dst:字符数组,dstBegin:字符数组开始存储位置。
JDK1.5版本之后出现了StringBuilder
StringBuffer是线程同步。
StringBuilder是线程不同步。
以后开发,建议使用StringBuilder。
升级三个因素:
1.提高效率。
2.书写方便。
3.提高安全性。
*/
class StringBufferDemo{
public static void main(String[] args) {
method_save();
method_delete();
method_update();
}
public static void method_save(){
StringBuffer sb = new StringBuffer();
//StringBuffer sb1 = sb.append(34);
//show(sb.toString());//--34
//show(sb1.toString());//--34
//show("sb===sb1"+(sb==sb1));//--true
sb.append("abc").append(true).append(34);
sb.insert(1,"qq");
show(sb.toString());
}
public static void method_delete(){
StringBuffer sb = new StringBuffer("abcdef");
sb.delete(1,3);
show(sb.toString());//--adef
//清空缓冲区
//sb = new StringBuffer();--->指向新缓冲区--->败家
sb.delete(0,sb.length());
sb.deleteCharAt(2);//--abdef
}
public static void method_update(){
StringBuffer sb = new StringBuffer("abcdef");
sb.replace(1,4,"java");
show(sb.toString());//--ajavaef
sb.setCharAt(2,'k');
show(sb.toString());//--abkdef
}
public static void show(Object obj){
System.out.println(obj);
}
}
java中的StringBuilder
最新推荐文章于 2024-08-01 16:56:41 发布