特点:
- 字符串一旦定义后,长度是不可变的。如果采用+号大量拼串,比较浪费空间。所以Java为了我们对字符拼接方便的进行操作,给我们提供了一个StringBuffer这个类。
- 线程安全的可变字符序列。一个类似于String的字符串缓冲区,但不能修改,但通过某些方法可以改变该序列的长度和内容。
常用构造方法:
- public StringBuffer()构造一个其中不带字符的字符串缓冲区,其初始容量为16个字符。
- public StringBuffer(String str)构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。
方法:
- 获取容量:
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)删除从指定位置开始指定位置结束的内容,并返回本身 - 替换:
public StringBuffer replace(int start,int end,String str):从start开始到end用str替换 - 截取:
public String substring(int start): 从指定位置截取到末尾
public String substring(int start,int end): 截取从指定位置开始到结束位置,包括开始位置,不包括结束位置 - 索引:
public int indexOf(String str) 返回第一次出现的指定子字符串在该字符串中的索引。
public int indexOf(String str, int fromIndex) 从指定的索引处开始,返回第一次出现的指定子字符串在该字符串中的索引。 - 反转:
public StringBuffer reverse()字符串反转
转换:
StringBuffer和StringBulider的区别:
StringBuffer是线程安全的效率低的
StringBuilder是线程不安全的效率高的