Java基础 - 可变字符串 StringBuffer
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类的方法参考 https://www.cnblogs.com/CongZhang/p/9939609.html
追加数据到字符串序列中
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****5678 12 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 }