107.StringBuffer常用方法;StringBuffer与StringBuilder的关系

StringBuffer常用方法

【构造方法】

<1>StringBuffer();创建一个StringBuffer类对象,在底层char类型数组中初始化容量为16;并且未存储任何的数据;

<2>StringBuffer(String str);【最常见】根据用户传入参数String类型字符串,创建对应的StringBuffer对象,底层char类型数组保存对应的字符串信息;

<3>StringBuffer(int capacity);根据用户传入初始化底层char类型数组容量确定StringBuffer对象;

【添加方法】

<1>append(EveryThing); 在StringBuffer末尾追加内容,可以是【任意数据类型】;
<2>insert(int index,EvertThing);在StringBuffer 指定下标位置添加内容;可以是【任意数据类型】;

class Panda{
    public static void main(String[] args) {
        //创建一个StringBuffer对象 无参构造方法
        StringBuffer stringBuffer = new StringBuffer();
        stringBuffer.append("小金");
        //创建一个StringBuffer对象 构造方法参数->字符串
        StringBuffer stringBuffer1 = new StringBuffer("hello:");
        stringBuffer1.append("小花,");
        stringBuffer1.append("小黄,");
        stringBuffer1.append("小哈");
        //在指定的下标位置插入字符串
        stringBuffer1.insert(0,"1");
        stringBuffer1.insert(3,"2");
        //创建一个StringBuffer对象 构造方法参数->【底层char类型的数组容量】
        StringBuffer stringBuffer2 = new StringBuffer(49);
    }
}

【查看方法】

<1>String toString(); StringBuffer底层保存数据的char类型字符数组内容,转换为String类型返回;【也就是StringBuffer转换成String】

<2>int indexOf(String str);指定字符串在StringBuffer出现的第一次下标位置
<3>int lastIndexOf(String str);指定字符串在StringBuffer中最后一次出现的下标位置

<4>String substring(int begin); 从指定位置开始,到字符串末尾截取所得对应的字符串;
<5>String substring(int begin,int end); 从指定位置begin开始,到end结束,获取对应的字符串,【要头不要尾】【也就是substring(0,4);获取的是第一个字符串到下标为3的字符串】

class Panda{
    public static void main(String[] args) {
        //创建一个StringBuffer对象 【构造方法参数直接传入字符串】
        StringBuffer stringBuffer = new StringBuffer("hello");
        //toString() 方法将StringBuffer转化为String
        String toString = stringBuffer.toString();
        //指定字符串在StringBuffer中第一次出现的位置【找不到此字符串返回-1】
        int indexOf = stringBuffer.indexOf("ll");
        //指定字符串在StringBuffer中最后一次出现的下标位置【找不到此字符串返回-1】
        int lastIndexOf = stringBuffer.lastIndexOf("ol");
        //从指定位置开始,到字符串末尾截取获得对应的字符串
        String substring = stringBuffer.substring(1);
        //从指定位置begin开始,到字符串下标end前一个位置结束,截取获得对应字符串
        String substring1 = stringBuffer.substring(1,3);
    }
}

【删除和反序方法】

<1>delete(int start,int end); 删除从start开始,到end结束区间的所有内容,【要头不要尾】;
<2>deleteCharAt(int index); 删除指定下标的字符
<3>reverse(); StringBuffer 内容反序

class Panda{
    public static void main(String[] args) {
        //创建一个StringBuffer对象 【构造方法参数直接传入字符串】
        StringBuffer stringBuffer = new StringBuffer("hello");
        //删除从start开始到end结束区间的所有内容要头不要尾
        stringBuffer.delete(3,5);
        //删除指定下标位置字符
        stringBuffer.deleteCharAt(1);
        //StringBuffer内容反序
        stringBuffer.reverse();
    }
}

StringBuffer与StringBuilder的关系

【线程与效率】

<1>StringBuffer 线程安全,效率低
<2>StringBuilder 线程不安全,效率高
StringBuffer和StringBuilder操作使用的方法,是一致的,只不过StringBuffer的方法带有大量的同步问题,效率比较低;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值