StringBuilder和StringBuffer常用方法

本文详细介绍了Java中StringBuffer和StringBuilder的区别与用法,包括它们的特性、方法示例,如append、insert、delete、replace等操作,并强调了StringBuilder在非线程安全但高效的优势,推荐在单线程环境中使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package demo.api;

/*
* String 和 StringBuffer 区别:
1.StringBuffer没有重写equals方法
2.StringBuffer不能使用+
* */
class StringBuilderAndStringBuffer {
    public static void main(String[] args) {
//        StringBuffer sb = new StringBuffer();
        StringBuilder sb = new StringBuilder();

        StringBuilder sb2 = sb.append("java").append(3.14f);//返回StringBuilder
        sb.append(true);
        System.out.println("判断sb和sb2:" + (sb == sb2));
        System.out.println("StringBuilder的引用:" + sb2);

        System.out.println("append插入任意数据:" + sb);//java3.14true

        sb.insert(4, '0'); //返回StringBuilder
        System.out.println("insert插入位置数据:" + sb);//java03.14true
        sb.delete(4, 5);    //[...) 前闭后开    //返回StringBuilder
        System.out.println("delete删除区间数据:" + sb);//java3.14true
        sb.deleteCharAt(5);
        System.out.println("delete删除位置数据:" + sb);//java314true

        sb.setCharAt(0, 'J');//return void
        System.out.println("替换位置数据:" + sb);//Java314true
        sb.replace(0, 4, "php");    //[...) 前闭后开
        System.out.println("替换区间数据:" + sb);//php314true
        sb.reverse();
        System.out.println("反转全部数据:" + sb);//eurt413php
        sb.reverse();
        System.out.println("反转全部数据:" + sb);//php314true

        String str = sb.substring(0, 3);
        System.out.println("截取字符串:" + str);

        System.out.println("从2号位置查找字符串\"p\":" + sb.indexOf("p", 2));
        System.out.println("查找字符串最后一次出现位置\"p\":" + sb.lastIndexOf("p"));
        System.out.println("查看字符数组容量:" + sb.capacity());
        System.out.println("查看字符数组长度:" + sb.length());
        System.out.println("查看指定位置字符:" + sb.charAt(1))
        ;
        str = sb.toString();
        System.out.println("StringBuffer 转 String:" + str);

        //sb.setLength(0);
        sb.setLength(20);
        System.out.println("设置长度:" + sb.length());
        ;
        System.out.println(sb);

        System.out.println("清空缓冲区:" + sb.delete(0, sb.length()));
    }
}
/*StringBuffer:就是字符串缓冲区。
 * 用于存储数据的容器。
 * 特点:
 * 1,长度的可变的。
 * 2,可以存储不同类型数据。
 * 3,最终要转成字符串进行使用。
 * 4,可以对字符串进行修改。
 * */
/*
StringBuffer 与 StringBuilder的相同处与不同处:

	相同点:
		1. 两个类都是字符串缓冲类。
		2. 两个类的方法都是一致的。
	不同点:
		1. StringBuffer是线程安全的,操作效率低 ,StringBuilder是线程非安全的,操作效率高。
		2. StringBuffer是jdk1.0出现 的,StringBuilder 是jdk1.5的时候出现的。

推荐使用: StringBuilder,因为操作效率高。
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值