StringBuffer 类是线程安全的可变字符序列,一个类似于String类的字符串缓冲区,两者本质上是一样的,但StringBuffer类的执行效率要比String类快很多。String类创建的字符串对象是不可修改的,StringBuffer类创建的字符串序列是可以修改的,且实体容量会随着存放的字符串增加而自动增加。
创建StringBuffer类
1 package com.mingri.chapter_02; 2 3 public class demo1 { 4 public static void main (String[] args) { 5 6 StringBuffer str1 = new StringBuffer(); 7 StringBuffer str2 = new StringBuffer("abc"); 8 StringBuffer str3 = new StringBuffer(22); 9 10 }11 }
StringBuffer类常用方法
StringBuffer类拥有String类中的方法,String类的方法参考
追加数据到字符串序列中
1 package com.mingri.chapter_02; 2 3 public class demo1 { 4 public static void main (String[] args) { 5 6 StringBuffer sdf = new StringBuffer("门前大桥下"); // 创建StringBuffer对象 7 sdf.append("游过一群鸭"); // 追加字符串常量 8 StringBuffer tmp = new StringBuffer("快来快来数一数"); // 创建新的StringBuffer对象 9 10 sdf.append(tmp); // 追加StringBuffer对象11 int x = 24678; // 创建整形变量12 sdf.append(x); // 追加整形变量13 System.out.println(sdf.toString()); // 输出14 15 }16 }
修改指定索引的字符
1 package com.mingri.chapter_02; 2 3 public class demo1 { 4 public static void main (String[] args) { 5 6 StringBuffer phoneNumber = new StringBuffer("18612345678"); 7 for (int i = 3; i <= 6; i++) { 8 phoneNumber.setCharAt(i, '*'); 9 }10 11 System.out.println("幸运观众的手机号为:" + phoneNumber); // 幸运观众的手机号为:186****567812 13 }14 }
插入字符串到指定索引位置
1 package com.mingri.chapter_02; 2 3 public class demo1 { 4 public static void main (String[] args) { 5 6 StringBuffer sbf = new StringBuffer(); 7 sbf.append("057号客户请到窗口受理,"); 8 sbf.append("058号客户请到窗口受理,"); 9 10 System.out.println("字符串原值:" + sbf); // 字符串原值:057号客户请到窗口受理,058号客户请到窗口受理,11 12 sbf.insert(13, "01号VIP客户请到窗口受理,"); // 插入VIP后:057号客户请到窗口受理,01号VIP客户请到窗口受理,058号客户请到窗口受理,13 14 System.out.println("插入VIP后:" + sbf);15 16 }17 }
删除指定索引位置的字符串
1 package com.mingri.chapter_02; 2 3 public class demo1 { 4 public static void main (String[] args) { 5 6 // 删除台词中的失误片段 7 String value = "各位观众大家好,欢迎准时打开电梯不对是电视机收看本节目......"; // 台词字符串 8 9 StringBuffer sbf = new StringBuffer(value); // 创建台词StringBuffer对象10 System.out.println("原值为:" + sbf); // 原值为:各位观众大家好,欢迎准时打开电梯不对是电视机收看本节目......11 12 sbf.delete(14, 19);13 14 System.out.println("删除后:" + sbf); // 删除后:各位观众大家好,欢迎准时打开电视机收看本节目......15 16 }17 }