StringBuffer与Stringbuilder

StringBuffer的常用操作方法
StringBuffer的常用操作方法1

StringBuffer的常用操作方法2

StringBuilder

一个可变的字符序列。此类提供一个与StringBuffer兼容的API,但不保证同步。该类被设计用作StringBuffer
的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普通)。如果可能,建议优先采用该类,
因为在大部分实现中,StringBuilder
比StringBuffer
快。

因为有(synchronized)修饰,线程安全
StringBuilder:
无(synchronized)修饰,线程不安全(多线程时会出问题)

注:synchronized 关键字表示同步

StringBuffer小例子

public class StringBuffer01 {
    public static void main(String[] args) {
        String s = "明明";
        //默认字符数组的大小是16
        //扩展方式:(原来的长度+1)*2
        //如果我们可以确定整个长度,可以调用带初始容量的构造方法
        StringBuffer sb = new StringBuffer();//生命StringBuffer方法
        sb.append("今天去奶奶家、");//拼接字符串
        sb.append("明天去舅舅家,");
        sb.append("后天自己在家里玩");
        System.out.println(s+sb);//输出:明明今天去奶奶家、明天去舅舅家,后天自己在家里玩

        //删除指定位置的字符串,包含开始位置,不包含结束位置
        sb.delete(19, 21 );
        System.out.println(sb.toString());//今天去奶奶家、明天去舅舅家,后天自己在玩
        //查询去第一次出现的位置
        int index = sb.indexOf("去");
        System.out.println("去的位置是:"+index);//去的位置是:2(从0开始数)

        //插入方法
        sb.insert(19, "家里");
        System.out.println(sb);//今天去奶奶家、明天去舅舅家,后天自己在家里玩


        //替换方法
        sb.replace(0, 2, "现在");
        System.out.println(sb);//现在去奶奶家、明天去舅舅家,后天自己在家里玩

        //反转
        sb.reverse();
        System.out.println(sb);//玩里家在己自天后,家舅舅去天明、家奶奶去在现

        //字符串截取
        String s1 = sb.substring(9);
        System.out.println(s1);//家舅舅去天明、家奶奶去在现

        String s2 = sb.substring(0, 7);
        System.out.println(s2);//玩里家在己自天

        //StringBuilder:synchronized 关键字表示同步(多线程时会出问题)
        /*
         * 单线程访问时使用,效率更高,线程不安全
         * StringBuffer:多线程访问时使用,效率较低,线程安全(JDK1.5后新增加的一个类)
         */
        StringBuilder sb2 = new StringBuilder();

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值