StringBuffer 方法实例解释

String:字符串类型。
String最终指向常量池,字符串常量池。
String 对象一旦创建不可改变。
String底层为一个不可以改变的char数组。

StringBuffer:为字符串缓冲区。字符串类型。
StringBuilder和StringBuffer是兄弟类。方法都一样。都是字符串缓冲区。
StringBuffer出现在JDK1.0版本。方法全部为同步方法,线程安全。效率低。
StringBuilder出现JDK1.5版本。方法不同步。线程不安全。效率高。

public class StringBufferDemo {

    public static void main(String[] args) {
        /*
         * StringBuffer的构造方法
         * 1.new StringBuffer():
         *  相当于底层创建了一个长度为16的char类型数组。16就为他的缓冲区
         * 2.new StringBuffer(int capacity):
         *  创建了一个长度为capacity的字符串缓冲区。基本不用。
         * 3.new StringBuffer(Charsequence seq)
         *   new StringBuffer(String str):
         *   传入字符串,作为该对象的字符串初始化。缓冲区长度为16
         *   整个容器的长度为字符串长度+16
         */
        StringBuffer sb1 = new StringBuffer();
        StringBuffer sb2 = new StringBuffer(10);
        StringBuffer sb3 = new StringBuffer("abc");
        System.out.println(sb3);//abc
        /*
         * StringBuffer是一个容器。
         * 可以添加 任何类型,但是最终以StringBuffer类型存在。都为字符串
         * 增删改查
         * StringBuffer | append(所有类型):连接,贴上
         * 返回自己本身。
         * 在末尾添加参数。
         */
        StringBuffer s = sb3.append(true);
        System.out.println(s);//abctrue
        System.out.println(sb3);//abctrue
        //方法的联动调用。
        sb3.append(3.14).append("哈哈哈").append(false);
        System.out.println(sb3);//abctrue3.14哈哈哈false
        /*
         * 按下标添加
         *  StringBuffer | insert(int offset,所有类型)
         *  按下标添加内容,返回自己本身
         */
        //abctrue3.14哈哈哈false
        sb3.insert(1, "AA");
        System.out.println(sb3);//aAAbctrue3.14哈哈哈false
        sb3.insert(1, "BB").insert(1, "CC");
        System.out.println(sb3);//aCCBBAAbctrue3.14哈哈哈false
        /*
         * int | length():获得该字符串中字符的个数
         */
        int length = sb3.length();
        System.out.println(length);//25
        /*
         * StringBuffer | replace(int start,int end,String str):
         * 把下标从start开始 到end结束替换为str
         * 保头不保尾,替换的字符个数为  end - start个
         */
        sb3.replace(1, 10, "XXYYZZ");
        System.out.println(sb3);//aXXYYZZrue3.14哈哈哈false
        /*
         * StringBuffer | deleteCharAt(int index)
         * 删除下标为index 的字符
         */
        sb3.deleteCharAt(1);
        System.out.println(sb3);aXYYZZrue3.14哈哈哈false
        /*
         * delete(int start,int end)
         * 从下标为start开始到end结束全部删除
         * 保头不保尾,删除的字符的个数为end - start
         */
        sb3.delete(1, 11);
        System.out.println(sb3);//a14哈哈哈false
        /*
         * reverse():反转
         */
        sb3.reverse();
        System.out.println(sb3);//eslaf哈哈哈41a
        /*
         * setCharAt(int index,char ch);
         * 把下标为index的字符替换为ch
         */
        sb3.setCharAt(1, 'A');//eslaf哈哈哈41a
        System.out.println(sb3);//eAlaf哈哈哈41a
        /*
         * setLength(int newLength);
         * 重新设置字符的个数
         */
        sb3.setLength(6);
        System.out.println(sb3);//eAlaf哈
        /*
         * 如何清空容器:
         */
        //1.长度设置为0
        //2.delete(0,sb3.length())
    
    }
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值