一、创建StringBuffer类
1.
StringBuffer 是线程安全 ( 耗费资源) 的 可变序列
StringBuilder 是 线程不安全(不耗费资源)的 可变序列
2.
创建一个新的StringBuffer对象一定要用到new方法,不能和string一样直接引用字符串常量
1 private static void fun1() { 2 // 构造方法初始化StringBuffer 3 StringBuffer sb = new StringBuffer(); 4 // 打印当前的容量(理论值) 5 System.out.println(sb.capacity());// 16 6 // 打印长度(实际值) 7 System.out.println(sb.length());// 0 8 // 打印内容 9 System.out.println(sb.toString());
3.1 添加 append():
append(可以添加多种类型 包括基本数据类型);
例如:String、int、double、Boolean等,都可以转变成字符串表示形式。
1 private static void fun1() { 2 // StringBufferr 的长度是可以变的 3 // 对StringBufferr操作的时候 改变的是其本身 4 StringBuffer sb1 = new StringBuffer(); 5 System.out.println(sb1); 6 7 sb1.append("wukong").append("z").append("n"); 8 sb1.append("z"); 9 sb1.append("n"); 10 11 System.out.println(sb1);
3.2 插入insert():
setCharAt(int index , char ch)方法
将索引处的字符修改为ch.
1 private static void fun3() { 2 StringBuffer sb = new StringBuffer(); 3 // 设置长度(一般用不上) 4 // sb.setLength(10); 5 // 按照下标去(偏移量)插入 6 sb.insert(0, "wukong"); 7 // 把索引位置的字符替换掉 8 sb.setCharAt(5,'p'); 9 sb.insert(6, 5); 10 System.out.println(sb); 11 }
3.3删除delete( , ):
移除此序列的字符串中的字符,该子字符串是从指定的索引start处开始,一直到索引end - 1处,如果end - 1超出最大索引范围则一直到序列尾部。
1 private static void fun4() { 2 StringBuffer sb = new StringBuffer(); 3 sb.append("wukong"); 4 // 删(留头不留尾) 5 sb.delete(0, 3); 6 // 根据索引删除 索引位置的字符 7 sb.deleteCharAt(2); 8 System.out.println(sb); 9 }
3.4替换
1 private static void fun5() { 2 StringBuffer sb = new StringBuffer(); 3 sb.append("wukong"); 4 sb.replace(0, 4,"tian"); 5 System.out.println(sb); 6 }
3.5反转
把字符串反转
字符串 转到 StringBuffer
StringBuffer转字符串
private static void fun7() { String string = "wukong"; // 字符串--->字符串缓冲区 StringBuffer sb = new StringBuffer(string); sb.reverse(); // 反转后转回字符串 string = sb.toString(); System.out.println(string); }
4、
1 public static void main(String[] args) { 2 // 测试字符串作为参数 值是否能发生改变 3 /* 4 * 虽然字符串是个对象类型 但作为参数的时候 5 * 跟基本数据类型一样 相当于是值的传递 6 */ 7 String string = "BaJie"; 8 fun10(string); 9 System.out.println(string);
5、
测试StringBuffer做为参数 值是否发生改变
* StringBuffer 是引用数据类型
* 作为参数 相当于地址的传递 在函数修改的部分
* 相当于在原字符串上 进行操作
StringBuffer sb = new StringBuffer();
sb.append("BaJie");
fun11(sb); System.out.println(sb); } }