//StringBuffer 案例
package Day13;
//StringBuffer 案例
public class Test_03 {
public static void main(String[] args) {
StringBuffer ss = new StringBuffer();// 创建一个字符串缓存区
StringBuffer s1 = ss.append(20);
StringBuffer sb = new StringBuffer("123我5678");
//1储存|追加
show( s1.append("I").append(true).append(10) );//案例1
//show(s1.toString());
s1.append("LOVE");//案例2,在结尾插入 [追加],将指定的数据作为参数 添加到已有数据的结尾处
show(s1.insert(2, "www"));//(在指定位置插入)将字符串插入此字符序列中。
//StringBuffer append(String str)
//2比较
show(s1 == s1);//案例1
StringBuffer s2 = ss.append('A');//案例2
show(s1 == s2);
//3临散的一些
show(s1.subSequence(0, 5));// 返回一个新的 String,它包含此序列当前所包含的字符子序列。
show(s1.substring(1));// 返回一个新的 String,它包含此字符序列当前所包含的字符子序列。
show(s1.codePointAt(2));// 返回指定索引处的字符(统一代码点)。
show(s1.capacity());// 返回当前容量。
show(s1.charAt(0));// 返回此序列中指定索引处的 char 值
show(s1.codePointBefore(1));// 返回指定索引前的字符(统一代码点)。
show(s1.codePointCount(0, 6));// 返回此序列指定文本范围内的统一代码点。
//4删除
show("剪前不减后:"+s1.delete(0,4));//包含头 不包含尾
show("剪前及后一个:"+sb.deleteCharAt(3));//把前面的和后面一个剪了
show(sb.indexOf("7"));// 被前面的2个剪掉了所以显示2
show(s1.delete(0, 7));// 移除此序列的子字符串中的字符。
show(s1.deleteCharAt(0));// 移除此序列指定位置的 char。
//5获取
show("获取:" + sb.charAt(3));// 获取位置上的值
show(sb.indexOf("我"));// 获取地址码
show(sb.lastIndexOf("我"));
show(sb.length());// 返回长度(字符数)。
show(sb.substring(3));// 获取后面的值
//6修改|替换 [包含头,不包含尾]
show(sb.replace(0, 4, "修改)_("));// 剪掉0-4前面的,之后补上修改2字
show(s1.replace(2, 3, "修改)^_^("));// 使用给定 String 中的字符替换此序列的子字符串中的字符。
sb.setCharAt(4, '修');// 修改第四位,字符只能一个
show(sb.toString());// 因为是数组所以要用toString输出
//7反转:
show(sb.reverse());// 将此字符序列用其反转形式取代。
//8清空:
sb.delete(0, sb.length());// 清空缓存区:
sb = new StringBuffer();//清空缓存区:不完美的,连载体都扔了
//9转换(看进来是什么,出来是什么)
//【1】String -----> StringBuffer
StringBuffer sb2= new StringBuffer("我看看");
//1通过构造方法
show ( sb2.append("test") );
//2通过append()方法
//【2】StringBuffer -----> String
//1通过toString()
show( sb2.toString() );
//2通过subString(0,length);
show( sb2.substring(0,4) );
//3通过构造方法
String s = new String("test");
show(s);
}
public static void show(Object str) {
System.out.println(str);
}
}