Java基础篇--StringBuffer 和 StringBuilder 类(处理可变字符串)

本文介绍了Java中的StringBuffer和StringBuilder类,比较了它们的线程安全特性,并详细列举了两者提供的核心操作方法,如append、reverse、delete等,通过示例展示了如何在实际编程中使用这些类进行字符串处理。
摘要由CSDN通过智能技术生成

Java中的StringBuffer和StringBuilder类是用于处理可变字符串的核心类。它们提供了一系列方法来操作字符串,相比于String类,它们可以在原有字符串的基础上进行修改,而不需要创建新的对象。 

StringBuffer和StringBuilder类的特点

  1. StringBuffer和StringBuilder都位于java.lang包中,用于处理字符串的可变操作。
  2. StringBuffer和StringBuilder的主要区别在于线程安全性,StringBuffer是线程安全的(即多线程环境下保证操作的安全),而StringBuilder是非线程安全的。也就是说StringBuffer不能被同步访问,而StringBuilder可以。
  3. StringBuffer和StringBuilder都提供了一系列方法用于添加、删除、替换以及获取字符串等操作。

StringBuffer和StringBuilder类的方法

  1. append(String str):将指定的字符串追加到当前字符序列的末尾。
  2. reverse():将当前字符序列进行反转。
  3. delete(int start, int end):移除当前字符序列中指定位置范围内的字符。
  4. insert(int offset, String str):在当前字符序列的指定位置插入一个字符串。
  5. replace(int start, int end, String str):使用给定字符串中的字符替换当前字符序列的指定位置范围内的字符。

除了上述方法之外,还有一些其他常用方法:

  1. capacity():返回当前字符序列的容量。
  2. charAt(int index):返回当前字符序列中指定索引处的字符。
  3. ensureCapacity(int minimumCapacity):确保字符序列的容量至少为指定值。
  4. getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin):将字符从当前字符序列复制到目标字符数组。
  5. indexOf(String str):返回指定子字符串在当前字符序列中第一次出现的索引。
  6. lastIndexOf(String str):返回指定子字符串在当前字符序列中最后一次出现的索引。
  7. length():返回当前字符序列的长度(字符数)。
  8. setCharAt(int index, char ch):将指定索引处的字符设置为指定字符。
  9. setLength(int newLength):设置字符序列的长度。
  10. subSequence(int start, int end):返回当前字符序列指定位置范围内的子序列。
  11. substring(int start):返回包含当前字符序列从指定位置开始到末尾的子字符串。
  12. substring(int start, int end):返回包含当前字符序列指定位置范围内的子字符串。
  13. toString():可以将StringBuffer或StringBuilder对象转换为String对象

示例代码:

public class myclass {

    public static void main(String[] args) {
        // 使用 StringBuffer 进行字符串操作
        StringBuffer stringBuffer = new StringBuffer("Hello");
        
        // append 方法:将指定的字符串追加到当前字符序列的末尾
        stringBuffer.append(" World");
        System.out.println("append 方法: " + stringBuffer.toString());
        // 输出结果:append 方法: Hello World
        
        // reverse 方法:将当前字符序列进行反转
        stringBuffer.reverse();
        System.out.println("reverse 方法: " + stringBuffer.toString());
        // 输出结果:reverse 方法: dlroW olleH

        // delete 方法:移除当前字符序列中指定位置范围内的字符
        stringBuffer.delete(5, 10);
        System.out.println("delete 方法: " + stringBuffer.toString());
        // 输出结果:delete 方法: dlroWH
        
        // insert 方法:在当前字符序列的指定位置插入一个字符串
        stringBuffer.insert(2, "l");
        System.out.println("insert 方法: " + stringBuffer.toString());
        // 输出结果:insert 方法: dllroWH

        // replace 方法:使用给定字符串中的字符替换当前字符序列的指定位置范围内的字符
        stringBuffer.replace(0, 4, "Hi");
        System.out.println("replace 方法: " + stringBuffer.toString());
        // 输出结果:replace 方法: HioWH
        
        // 使用 StringBuilder 进行字符串操作
        StringBuilder stringBuilder = new StringBuilder("Hello");

        // 其他常用方法
        int length = stringBuilder.length();
        char firstChar = stringBuilder.charAt(0);
        stringBuilder.setCharAt(0, 'h');
        String subString = stringBuilder.substring(2, 4);
        
        System.out.println("length 方法: " + length);
        // 输出结果:length 方法: 5
        
        System.out.println("charAt 方法: " + firstChar);
        // 输出结果:charAt 方法: H

        System.out.println("setCharAt 方法: " + stringBuilder.toString());
        // 输出结果:setCharAt 方法: hello
        
        System.out.println("substring 方法: " + subString);
        // 输出结果:substring 方法: ll
    }
}

更多内容:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Onlooker﹒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值