一、StringBuffer字符串缓冲区
1、特点
- 长度可变
- 可以直接操作多个数据类型
- 最终会通过toString()方法变成字符串
2、常用方法
存储:
- 追加到已有数据的末尾:StringBuffer append(String str);
- 在指定的位置添加数据:StringBuffer insert(int offset,String str)
删除:
- 删除指定区间的数据 包头不包尾:StringBuffer delete(int start,int end)
- 删除指定位置的字符:StringBuffer deleteCharAt(int index)
获取:
- 取某个位置上的字符:char charAt(int index)
- 获取指定字符串第一次出现的位置:int indexOf(String str)
- 获取指定字符串最后一次出现的位置:int lastIndexOf(String Str)
- 获取长度:int length()
- 截取:String substring(int start)
修改:
- 将指定区间的字符串 修改为 传入的新的字符串 包头不包尾:StringBuffer replace(int start,int end,String str)
- 替换指定位置的字符:void setCharAt(int index,char ch)
反转:
- 字符串的反转:StringBuffer reverse()
二、String 和StringBuffer的区别
1、转换
String---->StringBuffer
- 通过构造方法:
StringBuffer(String str)
- 通过toString()方法
StringBuffer----->String
- 通过append(String str)方法
- 通过构造方法
String(StringBuffer buffer)
- 截取:String substring(int start)
2、相同点:都是操作字符串的
3、不同点:
- StringBufer效率 大于 String;StringBuffer是在原有的基础上追加;String每一次拼接都会创建一个新的字符串
- String类虽然是引用数据类型 但在它作为方法的参数传递的时候 传递的和基本数据类型/包装类一样传的是值,而StringBuffer传的是地址
三、StringBuilder类
StringBuilder和StringBuffer一样,StringBuffer怎么用,StringBuilder就怎么用
不同点:
- StringBuffer是JDK1.0版本出现的、线程同步、 线程安全 、效率低
- StringBuilder是JDK1.5版本出现的、线程不同步、 线程不安全、效率高
四、比较
按效率排:StringBuilder>StringBuffer>String