两种buffer简介
- StringBuffer是线程安全的, 但是效率没有StringBuilder高, StringBuffer占用率高
- string类容不可修改因为是private修饰,buffer可以改内容
初始化
StringBuffer s=new StringBuffer("hello");
StringBuilder s=new StringBuilder("hello");
插入
在offset位置插入:八种基类类型 & String类型 & Object类型数据
StringBuff insert(int offset, String str)
s.insert(1,"abc"); //下标从0开始
尾插
在尾部追加,相当于String的+=,可以追加:boolean、char、char[]、 double、float、int、long、Object、String、StringBuff的变量
StringBuff append(String str)
获取元素
获取index位置的字符
char charAt(int index)
字符串长度
int length()
总容量
获取底层保存字符串空间总的大小
int capacity()
扩容
void ensureCapacity(int mininmumCapacity)
更改下标元素
将index位置的字符设置为ch
void setCharAt(int index,char ch)
String第一次出现的位置
返回str第一次出现的位置
int indexOf(String str)
从fromIndex位置开始查找str第一次出现的位置
int indexOf(String str, int fromIndex)
String最后一次出现str的位置
返回最后一次出现str的位置
int lastIndexOf(String str)
从fromIndex位置开始找str最后一次出现的位置
int lastIndexOf(String str,int fromIndex)
删除
删除index位置字符
StringBuffer deleteCharAt(int index)
删除[start, end)区间内的字符
StringBuffer delete(int start, int end)
s.delete(1,3); //左闭右开
尾删
StringBuilder sb = new StringBuilder();
sb.deleteCharAt(sb.length()-1);
翻转
StringBuffer reverse()
s.reverse();
截断
从start开始一直到末尾的字符以String的方式返回
String substring(int start)
将[start, end)范围内的字符以String的方式返回
String substring(int start,int end)
转换
StringBuilder 变String 利用StringBuilder的构造函数或者append(); 还可以调用toString()函数
将所有字符按照String的方式返回
String toString()