文章目录
一、概述
String类是字符串常量
,是不可更改的常量。而StringBuffer是字符串变量
,它的对象是可以扩充和修改的。
StringBuffer是使用缓冲区的,本身也是操作字符串的,但与String类不同,String类中的内容一旦声明之后不可改变,改变的只是其内存地址的指向,而StringBuffer中的内容是可以改变的 。
对于StringBuffer而言,本身是一个具体的操作类,所以不能像String那样采用直接赋值的方式进行对象实例化,必须通过构造方法完成。
StringBuffer连接字符操作
当一个字符串的内容需要被经常改变时就要使用StringBuffer。
在StringBuffer中使用append()方法,完成字符串的连接操作。
二、构造方法
- StringBuffer()
- StringBuffer(String str)
- StringBuffer(int capacity)
- StringBuffer(CharSequence seq)
CharSequence 是个接口,它有几个实现类:CharBuffer, Segment, String, StringBuffer,
StringBuilder
三、常用方法
获取长度:
- 获取理想容量:capacity()
- 获取实际长度:length()
StringBuffer的capacity()和length()的区别如下图:
添加
- 在末尾追加:public StringBuffer append(String str)
- 在指定位置插入:public StringBuffer insert(int offset, String str)
注意:append方法可以追加的数据类型包含很多种,并且支持链式的写法
删除
-
删除指定位置的元素:public StringBuffer deleteCharAt(int index)
-
删除某个区间的元素(包左不包右):public StringBuffer delete(int start, int end)
替换
- public StringBuffer replace(int start, int end, String str)
反转
注意:String类是没有这个功能的
- public StringBuffer reverse()
截取
注意这里返回值不再是StringBuffer了
public String subString(int start)
public String subString(int start, int end)