Java学习教程,从入门到精通,Java StringBuffer 和 StringBuilder 类(123)

Java StringBuffer 和 StringBuilder 类

一、概述

  • StringBufferStringBuilder 都是用于处理可变字符串的类。
  • 它们提供了比 String 类更高效的字符串操作,尤其是在需要频繁修改字符串内容的情况下。
  • StringBuffer 是线程安全的,而 StringBuilder 是非线程安全的。
  • 在单线程环境下,StringBuilder 的性能优于 StringBuffer

二、主要区别

特性 StringBuffer StringBuilder
线程安全
性能 较低 较高
使用场景 多线程环境 单线程环境

三、常用方法

  • 构造方法:
    • StringBuffer(): 构造一个空的字符串缓冲区,初始容量为 16 个字符。
    • StringBuffer(int capacity): 构造一个指定容量的字符串缓冲区。
    • StringBuffer(String str): 构造一个包含指定字符串的字符串缓冲区。
  • 追加方法:
    • append(数据类型): 将指定数据类型的字符串表示形式追加到字符串缓冲区。
  • 插入方法:
    • insert(int offset, 数据类型): 将指定数据类型的字符串表示形式插入到字符串缓冲区的指定位置。
  • 删除方法:
    • delete(int start, int end): 删除字符串缓冲区中从 start 开始到 end-1 结束的子字符串。
    • deleteCharAt(int index): 删除字符串缓冲区中指定位置的字符。
  • 替换方法:
    • replace(int start, int end, String str): 使用指定字符串替换字符串缓冲区中从 start 开始到 end-1 结束的子字符串。
  • 反转方法:
    • reverse(): 将字符串缓冲区中的字符序列反转。
  • 其他方法:
    • length(): 返回字符串缓冲区的长度。
    • capacity(): 返回字符串缓冲区的当前容量。
    • charAt(int index): 返回字符串缓冲区中指定位置的字符。
    • setCharAt(int index, char ch): 将字符串缓冲区中指定位置的字符设置为 ch。
    • substring(int start): 返回字符串缓冲区中从 start 开始到末尾的子字符串。
    • substring(int start, int end): 返回字符串缓冲区中从 start 开始到 end-1 结束的子字符串。
    • toString(): 返回字符串缓冲区的字符串表示形式。

四、案例代码

public class StringBufferAndBuilderDemo {
   
   

    public static void main(String[] args) {
   
   
        // 1. 创建 StringBuffer 和 StringBuilder 对象
        StringBuffer stringBuffer = new StringBuffer("Hello");
        StringBuilder stringBuilder = new StringBuilder("World");

        // 2. 追加字符串
        stringBuffer.append(" ");
        stringBuffer.append("Java");
        stringBuilder.append("!");
        System.out.println("StringBuffer: " + stringBuffer); // 输出: StringBuffer: Hello Java
        System.out.println("StringBuilder: " + stringBuilder); // 输出: StringBuilder: World!

        // 3. 插入字符串
        stringBuffer.insert(5, ",");
        stringBuilder.insert(0, "Hello ");
        System.out.println("StringBuffer: " + stringBuffer); // 输出: StringBuffer: Hello, Java
        System.out.println("StringBuilder: " + stringBuilder); // 输出: StringBuilder: Hello World!

        // 4. 删除字符串
        stringBuffer.delete(5, 6);
        stringBuilder.deleteCharAt(5);
        System.out.println("StringBuffer: " + stringBuffer); // 输出: StringBuffer: Hello Java
        System.out.println("StringBuilder: " + stringBuilder); // 输出: StringBuilder: HelloWorld!

        // 5. 替换字符串
        stringBuffer.replace(6, 10, "Python");
        stringBuilder.r
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值