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线程同步,效率低,每次使用时都要判断锁