StringBuffer类的概述
- StringBuffer类概述
我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间。而StringBuffer就可以解决这个问题 - 线程安全的可变字符序列
StringBuffer类的构造方法
- StringBuffer的构造方法:
public StringBuffer(): 无参构造方法
public StringBuffer(int capacity): 指定容量的字符串缓冲区对象
public StringBuffer(String str): 指定字符串内容的字符串缓冲区对象 - StringBuffer的方法:
public int capacity():返回当前容量。 理论值
public int length():返回长度(字符数)。 实际值
案例演示
- 调用StringBuffer类的无参构造方法
package demo1;
public class Demo1 {
public static void main(String[] args) {
//StringBuffer 可变字符序列,长度是可变的。
// String 一旦定义他的值就不能被改变。
// StringBuffer 可以认为是一个字符容器,你可以不断的往容器中追加内容。
// StringBuffer()
// 构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符。
StringBuffer sb = new StringBuffer();
System.out.println(sb.capacity());//获取容量
sb.append("abcdn");
System.out.println(sb.length());//获取容器中字符的长度
}
}
- 调用StringBuffer类的有参构造方法
package demo1;
public class Demo2 {
public static void main(String[] args) {
StringBuffer s1 = new StringBuffer(100);
System.out.println(s1.capacity());
StringBuffer s2 = new StringBuffer("hello");
System.out.println(s2.toString());//toString()来获取字符串
}
}
- 链式编程
package demo1;
public class Demo3 {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
//往字符串缓冲区中追加内容,返回的还是原来的那个对象
StringBuffer sb2 = sb.append("abc");
System.out.println(sb == sb2); //true
//因为我们调用完append()方法后,返回的还是那个对象,所以我就可以链式编程。
sb.append(100).append(true).append(3.14);
//StringBuffer 重写了toString方法,会把他容器中的内容转换成字符串
String s = sb.toString();
System.out.println(s);
}
}
StringBuffer的添加功能
- public StringBuffer append(String str): 可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身
- public StringBuffer insert(int offset,String str):在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身
- 案例演示
public class MyTest3 {
public static void main(String