String一旦声明,内容就不能改变。字符串缓存实现可变字符序列。
字符串缓存可以被多个线程安全使用。它的方法用synchronized修饰。需要时可同步执行。
String z=“Start”;
Z.insert(4,”el”); //Starelt
字符串缓存有一定容量,如果内部的缓冲区溢出,将自动扩大。
(1)常用构造函数
StringBuffer();
StringBuffer(int size); //创建大小为size的StringBuffer对象
StringBuffer(String str); //内容为str对象
注:StringBuffer内容是可以变长的,声明空StringBuffer对象不会影响后面使用。也是可以修改的。
(2)字符串缓存与字符串转化
String str=”ss”;
StringBuffer buf=new StringBuffer(str);
str与buf输出内容一样,字符相同,但不是同一个字符串对象。(str!==buf)(str.equals(buf) 返回true)
(3)字符串缓存扩充
Public synchronized StringBuffer append(Object obj);
Public synchronized StringBuffer append(StringBuffer sb);
Public synchronized StringBuffer append(String str);
Public synchronized StringBuffer append(char str);
Public synchronized StringBuffer append(char str[],int offset,int len);//从数组地offset扩充len个元素
(4)字符串缓存插入
Public synchronized StringBuffer insert(int offset,String str); //地offset元素前面插入
Public synchronized StringBuffer insert(int offset,Char str[]);
Public synchronized StringBuffer insert(int offset,Object obj);
Public synchronized StringBuffer insert(int desOffset,char [] s,int start,int len); //把char[] s的从第start元素起往后的len个元素插入到desOffset元素的前面。
注:如果没有char,int,float,double.String等类型,则会被当成Object接受。
(5)字符串缓存类其它操作
重要方法:
Public synchronized String substring(intstart,int end) //返回内容中从sart带end部分。
Public int indexOf(String str) 返回str在当前内容中第一次出现的位置
Public int lastindexOf(String str)
Public synchonized StringBuffer replace(int start,int end,String str)把当前字符串从sart到恩典区域换成str
Public synchonized StringBuffer delete(int start,int end)
Public synchonized int capacity(int start,int end) //返回空间大小,空间满则会自动扩展
Public synchonized StringBuffer reverse();//将字符内容翻转“abc”变成“cba”