StringBuffer类

StringBuffer类

  1. 概述:
    StringBuffer是长度可变的容器,用于存储字符序列。
    每次new一个StringBuffer(),相当于构造了一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符,一旦超过了默认容量,可以自动扩充。

  2. StringBuffer和String的区别:
    String是一个字符串类,其对象值不可以修改,改变的始终是他的地址值,且长度固定
    StringBuffer也是一个字符串类,但是相当于一个容器,可以修改其对象值,返回的还是这个容器,长度可变。

  3. StringBuffer构造方法:
    public StringBuffer(): 无参构造方法
    public StringBuffer(int capacity): 指定容量的字符串缓冲区对象
    public StringBuffer(String str): 指定字符串内容的字符串缓冲区对象

  4. String的部分方法:
    public int capacity():返回当前容量。 理论值
    public int length():返回长度(字符数)。 实际值

    添加:
    public StringBuffer append(String str): 可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身
    public StringBuffer insert(int offset,String str):在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身

    删除:
    public StringBuffer deleteCharAt(int index):删除指定位置的字符,并返回本身
    public StringBuffer delete(int start,int end):删除从指定位置开始指定位置结束的内容,并返回本身

    替换:
    public StringBuffer replace(int start,int end,String str): 从start开始到end用str替换

    反转:
    public StringBuffer reverse():

    截取:
    public String substring(int start): 从指定位置截取到末尾
    public String substring(int start,int end): 截取从指定位置开始到结束位置,包括开始位置,不包括结束位置

  5. String和StringBuffer的相互转换:
    A:String ------- StringBuffer
    a:通过构造方法
    b:通过append()方法

    B:StringBuffer ------- String
    a: 使用substring方法
    b:通过构造方法
    c:通过toString()方法

public class Test {
    public static void main(String[] args) {

        //String------>StringBuffer
        String str1="abv";
        //构造方法
        StringBuffer sb = new StringBuffer(str1);
        //拼接
        StringBuffer sb1= sb.append(str1);


        //StringBuffer------>String
        StringBuffer sb2 = new StringBuffer("abc");
        //toString方法
        String str2 = sb2.toString();
        //构造方法
        String str3 = new String(sb2);
        //substring方法
        String str4 = sb2.substring(0);

    }
}

  1. 例:
    把数组中的数据按照指定个格式拼接成一个字符串
public class Test2 {
    public static void main(String[] args) {
        int []arr={19,4,5,2,8};
        StringBuffer sb = new StringBuffer();

        for (int i = 0; i < arr.length; i++) {
            if(i==0){
                sb.append("["+arr[i]+",");
            }else if(i!=arr.length-1) {
                sb.append(arr[i] + ",");
            }else{
                sb.append(arr[i]+"]");
            }
        }
        System.out.println(sb);
    }
}

在这里插入图片描述

  1. StringBuffer和StringBuilder的区别
    StringBuilder 一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。
    如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。
    StringBuilder: 线程不安全,效率高
    StringBuffer 线程安全效率低
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值