Java常用API—StringBuffer类与StringBuilder类

xiaoxiao2021-02-28  93

一、引言

String类虽然很强大,但是因为String类不可变,所以会造成内存的过于浪费。为了解决字符串的内存问题,诞生了StringBuffer类,也就是字符串缓冲区。它的出现极大提高了字符串的操作效率。

StringBuffer内部定义了一个没有final的数组(实质上是StringBuffer继承的父类AbstractStringBuilder中定义的:char[] value)。该数组的默认容量是16个字符。当数组扩容时,将原数组复制,再添加,形成新的数组,将旧数组抛弃。

二、StringBuffer的方法

》StringBuffer append(String str)

将形参引用的字符串追加到字符串后面,可以接受任何数据类型但是最后输出的都是字符串类型。谁调用返回谁,可以无限制在后面调用(方法调用链,即如果方法的返回值类型还是个对象,那么还可以接着点出方法)

结果:

》StringBuffer delete(int start, int end) 移除此序列的子字符串中的字符

java中,索引有开始结束的,都是含头不含尾

如果想清空缓冲区,可以通过如下代码做到:

结果:

 

》StringBufferinsert(int offset, ***) 将字符串插入此字符串任意位置(offset指定的下标位置),***可以为任何类型

》StringBufferreplace(int start, int end, String str) 使用给定字符串替换

》StringBufferreverse() 将此字符序列反转

》StringtoString() 以字符串形式返回序列

三、StringBuilder类

与StringBuffer兼容(两个类的方法相同),该类被设计用作StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候。如果没有多线程需求,建议使用StringBuilder,因为StringBuilder较快。

四、StringBuilder 与 StringBuffer 的区别

StringBuilder线程不安全,执行效率高,StringBuffer相反。其他都一样,方法完全相同。

转载请注明原文地址: https://www.6miu.com/read-1950111.html

最新回复(0)