stringbuffer的作用:
产生前提:之前我们学习过String类,每次拼接一个字符串,系统都为之开辟一个新的内存空间,这样既耗时又占用了大量的空间。
StringBuffer就可以处理这个问题,它是一个字符串缓冲区。
可以把StringBuffer和StringBuilder理解为字符串的容器
StringBuffer类概述
线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,
但通过某些方法调用可以改变该序列的长度和内容。
构造方法
StringBuffer() :构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符。
StringBuffer(CharSequence seq):构造一个字符串缓冲区,它包含与指定CharSequence (接口实现类)相同的字符。
StringBuffer(int capacity) :构造一个不带字符,但具有指定初始容量的字符串缓冲区。
StringBuffer(String str):构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。
增 :
StringBuffer append(String str)
StringBuffer insert(int offset, String str)//从下标为2开始加入String
StringBuffer is=new StringBuffer();
is.append("asd");
is.insert(2,"zx");
System.out.println(is);//打印数据aszxd
删 :
StringBuffer deleteCharAt(int index)
S
t
r
i
n
g
B
u
f
f
e
r
d
e
l
e
t
e
(
i
n
t
s
t
a
r
t
,
i
n
t
e
n
d
)
\color{red}{ StringBuffer delete(int start, int end)}
StringBufferdelete(intstart,intend) 左闭右开
is.delete(1, 2);
System.out.println(is);//删除了下标为1,因为2为开区间
is.delete(1);//只删除了下标为1
改:public StringBuffer replace(int start,int end,String str)
StringBuffer is=new StringBuffer();
is.append("asdp");
is.replace(1, 3, "123");
System.out.println(is);//“123”代替了[1,3)的两个数:a123p
其他:
public StringBuffer reverse() //字符串反转
public String substring(int start)//取子串
p
u
b
l
i
c
S
t
r
i
n
g
s
u
b
s
t
r
i
n
g
(
i
n
t
s
t
a
r
t
,
i
n
t
e
n
d
)
\color{red}{public String substring(int start,int end)}
publicStringsubstring(intstart,intend)左闭右开
is.append("asdp");
System.out.println(is.subSequence(1, 4));//打印:sdp
is.append("asdp");
System.out.println(is.substring(2));//打印dp