StringBuffer类
StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。
在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。
在StringBuffer类中存在很多和String类一样的方法,这些方法在功能上和String类中的功能是完全一样的。
特点:
StringBuffer是线程安全、同步的、效率低,是一个可变的字符序列且内容可以被修改。可以指定其容量的大小,默认容量不足时则可以自动增加容量。
StringBuffer的构造方法
//无参构造
public StringBuffer()
//指定容量的字符串缓冲区对象
public StringBuffer(int capacity)
//指定字符串内容的字符串缓冲区对象
public StringBuffer(String str)
StringBuffer的方法
返回当前容量:理论值
public int capacity()
返回长度(字符数):实际值
public int length()
把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身,
public StringBuffer append(String str)
在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身,
public StringBuffer insert(int offset,String str)
删除指定位置的字符,并返回本身
public StringBuffer deleteCharAt(int index)
删除从指定位置开始到指定位置结束的字符串,并返回本身
public StringBuffer delete(int start,int end)
从start开始到end用str替换
public StringBuffer replace(int start,int end,String str)
字符串反转
public StringBuffer reverse()
从头查找该字符串,在容器中第一次出现的索引,如果找不到就返回-1.
int indexOf (String str)
从指定索引处开始查找该字符串第一次出现的索引,如果找不到就返回-1
int indexOf (String str,int fromIndex)
从后往前找
int lastIndexOf (String str)
int lastIndexOf (String str,int fromIndex)
从指定位置截取到末尾
public String substring(int start)
截取从指定位置开始到结束位置,包括开始位置,不包括结束位置
public String substring(int start,int end)
StringBuffer和String的相互转换
StringBuffer --> String
- 使用substring方法
- 通过构造方法
- 通过toString()方法
String --> StringBuffer
- 通过构造方法
- 通过append()方法
StringBuffer和StringBuilder的区别
1、StringBuffer多线程安全的,StringBuilder多线程不安全
2、StringBuffer从JDK1.0就有了,StringBuilder是JDK5.0才出现