StringBuffer

今天复习一下StringBuffer

1 StringBuffer与StringBuilder的区别:

     StringBuffer是jdk1.0版本的,是线程安全的,效率低

    StringBuilder是jdk1.5版本的,是线程不安全的,效率高

2 String与StringBuffer,StringBuilder的区别:

    String是一个不可变的字符序列

    StringBuffer,StringBuilder是可变的

=======================  华丽分割线 以下是StringBuffer常用的方法 ======================

StringBuffer的添加功能:

  
        // 1 新建一个StringBuffer容器(在堆内存创建了一个对象。其底层是一个长度为16的字符数组)
        StringBuffer sb = new StringBuffer();
        
        // 1.1 调用append方法可以向容器中添加字符串
        sb.append("1234567890");
        
        System.out.println(sb);
        
        // 1.2 调用capacity方法可以查看容器字符容量(默认初始化容量为16)
        System.out.println(sb.capacity());
        
        // 1.3调用inser方法可以向指定位置插入字符串
        sb.insert(2, "AAAA");
        System.out.println(sb);
       

StringBuffer的删除功能:


        StringBuffer sb = new StringBuffer();
        sb.append("1234567");
        System.out.println(sb);
        
        // 1 删除指定位置上的字符
        sb.deleteCharAt(3);
        System.out.println("第一次删除后的字符:"+sb);
        
        // 2 删除索引对应位置上的字符串
        sb.delete(0, 3);
        System.out.println("第二次删除后的字符:"+sb);
        
        // 3 清空字符缓冲区
        sb.delete(0, sb.length());
        System.out.println("清空缓冲区后的字符:"+sb);
        
        
        /**
         * 注意点:
         *     1 当缓冲区中这个索引上没有元素时会报 java.lang.StringIndexOutOfBoundsException
         *  2 不建议使用 sb =  new StringBuffer(); 这种方式清空缓冲区
         *    因为这样做新建立了一个对象  然后再把sb的指针指向新建立的对象 会浪费内存
        */

   StringBuffer的替换功能:

  
        StringBuffer sb = new StringBuffer("12345678");
        System.out.println(sb);
        
        //1 指定位置替换字符串
        sb.replace(0, 2, "AA");
        System.out.println(sb);
        
        //2 字符串反转
        sb.reverse();
        System.out.println(sb);

   StringBuffer的截取功能:


        StringBuffer sb = new StringBuffer("123456789");
        System.out.println(sb);

        // 1 从指定位置截取到末尾 返回一个String类型的字符串
        String str1 = sb.substring(7);
        System.out.println("第一次截取到的字符串:" + str1);

        // 2 从截取指定位置的字符串 返回一个String类型的字符串
        String str2 = sb.substring(0,7);
        System.out.println("第二次截取到的字符串:" + str2);

   

   StringBuffer转换String:


        StringBuffer sb = new StringBuffer("12345");
        System.out.println("sb:" + sb);

        // 1 直接使用String构造方法
        String str1 = new String(sb);
        System.out.println("str1:" + str1);

        // 2 调用StringBuffer的toString方法
        String str2 = sb.toString();
        System.out.println("str2:" + str2);

        // 3 调用StringBuffer的截取字符串方法
        String str3 = sb.substring(0, sb.length());
        System.out.println("str3:" + str3);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值