17.StringBuffer和StringBuilder

来源:互联网 发布:linux 安装java编译 编辑:程序博客网 时间:2024/06/04 18:53

1 StringBuffer

字符串缓冲区,特点:

长度可变化

可以操作多个数据类型

特通过toString变成字符串

1.1  存储:append() 将指定数据作为参数添加到已有数据的结尾处

StringBuffer sb=new StringBuffer();

sb.append(43);

insert(offset,boolean/char/char [ ]) 在指定索引位置插入数据

insert(1,"qq");

1.2删除:delete(start,end) 删除包含start,不包含end的子序列

deleteCharAt(index),删除指定位置字符


sb.delete(0,sb.length());//清空缓冲区


1.3获取(与String差不多):

char charAt(index);

int indexOf(String str);

int lastIndexOf(String str);

int llength();

String subString(start ,end);//返回的是一个字符串

1.4修改:

StringBuffer replace(int start,int end, str);//不包含end

 使用给定 String 中的字符替换此序列的子字符串中的字符。

void setCharAt(index,ch);修改index处的字符

1.5反转:

StringBuffer reverse();

1.6将缓冲区指定数据存储到指定字符数组中:

void getChars(int srcBegin,int srcEnd,char [] dst, int dstBegin);


StringBuffer sb=new StringBuffer("abcdef");

char [] chs=enw char[4];

sb.getChars(1,4,chs,1);

for(itn x=0;x<chs.length;x++){

System.out.println(chs[x]);

}

\\output: chs[0]=   ;

      chs[1]=b;

      chs[2]=c;

      chs[3]=d;


StringBuilder:用法与StringBuffer相同,这里主要讲两者的区别:

1.StringBuilder线程不同步(建议使用)

StringBuffer线程同步,效率低,每次使用时都要判断锁

0 0