StringBuffer
接口文档:详情可自行查看
StringBuffer 的特点
StringBuffer 类的对象可被多次修改,且对 StringBuffer 对象本身操作;
StringBuffer 类使用 synchronized 同步修饰方法,线程安全。
StringBuffer 的构造方法
StringBuffer():构造一个没有字符的字符串缓冲区,初始容量为16字符;
StringBuffer(String str):构造一个初始化为指定内容的字符串缓冲区;
StringBuffer(int capacity):构造一个没有字符的字符串缓冲区和指定的初始容量;
实例:
/* 构造方法 */ // 构造一个没有字符的字符串缓冲区,初始容量为16 StringBuffer sb1 = new StringBuffer(); System.out.println(sb1.capacity()); // 16 System.out.println(sb1.length()); // 0 // 构造一个指定字符串的字符串缓冲区,容量 = 16(初始容量) + 字符串长度 StringBuffer sb2 = new StringBuffer("Java"); System.out.println(sb2.capacity()); // 20 = 16 + 4 System.out.println(sb2.length()); // 4 // 构造指定容量的字符串缓冲区 StringBuffer sb3 = new StringBuffer(12); System.out.println(sb3.capacity()); // 12 System.out.println(sb3.length()); // 0
StringBuffer 的常用方法
append(): 追加,在字符串末尾添加;
delete():删除,删除指定索引处的字符;
replace():替换,用指定的String中的字符替换子字符串中的String;
reverse():反转;
substring():截取返回一个新的 String,它包含此序列当前所包含的字符子序列
insert():插入,指定位置插入字符串;
/* 常用方法 */ StringBuffer str1 = new StringBuffer("I love "); // append(): 追加 System.out.println("append()前str1: " + str1); // I love str1.append("Java!"); System.out.println("append()后str1: " + str1); // I love Java! // delete(): 删除 System.out.println("delete()前str1: " + str1); // I love Java! str1.delete(3, 5); System.out.println("delete()后str1: " + str1); // I le Java! // replace(): 替换 System.out.println("replace()前str1: " + str1); // I le Java! str1.replace(1, 4, "*******"); System.out.println("replace()后str1: " + str1); // I******* Java! // reverse(): 反转 System.out.println("reverse()前str1: " + str1); // I******* Java! str1.reverse(); System.out.println("reverse()后str1: " + str1); // !avaJ *******I // substring(): 截取 System.out.println("substring()前str1: " + str1); // !avaJ *******I String str2 = str1.substring(3, 8); System.out.println("substring()后str1: " + str2); // aJ ** // insert(): 插入 System.out.println("insert()前str1: " + str1); // !avaJ *******I str1.insert(3, "hahaha"); System.out.println("insert()后str1: " + str1); // !avhahahaaJ *******I
运行结果:
append()前str1: I love append()后str1: I love Java! delete()前str1: I love Java! delete()后str1: I le Java! replace()前str1: I le Java! replace()后str1: I******* Java! reverse()前str1: I******* Java! reverse()后str1: !avaJ *******I substring()前str1: !avaJ *******I substring()后str1: aJ ** insert()前str1: !avaJ *******I insert()后str1: !avhahahaaJ *******I
构造方法
public static void main(String[] args){ /* 构造方法 */ // 构造一个没有字符的字符串缓冲区,初始容量为16 StringBuffer sb1 = new StringBuffer(); System.out.println(sb1.capacity()); // 16 System.out.println(sb1.length()); // 0 // 构造一个指定字符串的字符串缓冲区,容量 = 16(初始容量) + 字符串长度 StringBuffer sb2 = new StringBuffer("Java"); System.out.println(sb2.capacity()); // 20 = 16 + 4 System.out.println(sb2.length()); // 4 // 构造指定容量的字符串缓冲区 StringBuffer sb3 = new StringBuffer(12); System.out.println(sb3.capacity()); // 12 System.out.println(sb3.length()); // 0 /* 常用方法 */ StringBuffer str1 = new StringBuffer("I love "); // append(): 追加 System.out.println("append()前str1: " + str1); // I love str1.append("Java!"); System.out.println("append()后str1: " + str1); // I love Java! // delete(): 删除 System.out.println("delete()前str1: " + str1); // I love Java! str1.delete(3, 5); System.out.println("delete()后str1: " + str1); // I le Java! // replace(): 替换 System.out.println("replace()前str1: " + str1); // I le Java! str1.replace(1, 4, "*******"); System.out.println("replace()后str1: " + str1); // I******* Java! // reverse(): 反转 System.out.println("reverse()前str1: " + str1); // I******* Java! str1.reverse(); System.out.println("reverse()后str1: " + str1); // !avaJ *******I // substring(): 截取 System.out.println("substring()前str1: " + str1); // !avaJ *******I String str2 = str1.substring(3, 8); System.out.println("substring()后str1: " + str2); // aJ ** // insert(): 插入 System.out.println("insert()前str1: " + str1); // !avaJ *******I str1.insert(3, "hahaha"); System.out.println("insert()后str1: " + str1); // !avhahahaaJ *******I }
运行结果:
16 0 20 4 12 0 append()前str1: I love append()后str1: I love Java! delete()前str1: I love Java! delete()后str1: I le Java! replace()前str1: I le Java! replace()后str1: I******* Java! reverse()前str1: I******* Java! reverse()后str1: !avaJ *******I substring()前str1: !avaJ *******I substring()后str1: aJ ** insert()前str1: !avaJ *******I insert()后str1: !avhahahaaJ *******I