/*
StringBuffer是字符串缓冲区
1、是一个容器,而且长度可变化。 面团理论
2、并,可以操作多个数据类型
3、最终会通过toString方法变成字符串
curd
1、添加
StringBuffer append()
StringBuffer insert(index,数据);可以将数据插入指定index位置
2、删除
StringBuffer delete(start,end);
StringBuffer deleteCharAt(index);//删除指定位置的字符
3、获取
char charAt(index);
int indexOf(String str);
int lastIndexOf(String str);
int length()
String substring(int start,int end);
4、修改
StringBuffer replace(start,end,str);
void setCharAt(index,char);
5、反转
StringBuffer reverse();
6、 void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin);包含头不包含尾
JDK1.5版本之后出现了StringBuilder
StringBuffer是线程同步,需要判断锁
StringBuilder线程不同步,效率快
升级三个因素:
1、提高效率
2、简化书写
3、提高安全性
*/
public class StringBufferDemo{
public static void main(String[] args){
//method_add();
//method_delete();
//method_update();
method_srcToDst();
}
public static void sop(Object obj){
System.out.println("*****"+obj);
}
public static void method_add(){
StringBuffer sb = new StringBuffer();
sb.append(32).append("aaa");
sb.insert(1,"qq");
/* StringBuffer sb2 = sb.append(34);
sop("sb==sb2"+(sb==sb2));//*****sb==sb2true sb和sb1指向同一个对象
sop(sb.toString());
sop(sb2.toString()); */
sop(sb.toString());
}
public static void method_delete(){
StringBuffer sb = new StringBuffer("abcde");
//sb.delete(1,3);
//sb.delete(0,sb.length());
//sb.delete(2,3);
sb.deleteCharAt(2);
sop(sb.toString());
}
public static void method_update(){
StringBuffer sb = new StringBuffer("abcde");
//sb.replace(1,4,"java");
//sop(sb.toString());//*****ajavae
sb.setCharAt(2,'k');//*****abkde
sop(sb.toString());
}
public static void method_srcToDst(){
StringBuffer src = new StringBuffer("abcdef");
String dst = "javala";
char[] arrs = dst.toCharArray();
src.getChars(0,2,arrs,2);
sop(src.toString());
int x = 0;
for(char ch:arrs)
sop("arrs["+(x++)+"]=:"+ch);
//*****arrs[0]=:j
//*****arrs[1]=:a
//*****arrs[2]=:a
//*****arrs[3]=:b
//*****arrs[4]=:l
//*****arrs[5]=:a
}
}
Java中StringBuffer的特点及常用方法
最新推荐文章于 2023-01-13 15:35:31 发布