StringBuilder

本文深入探讨了StringBuilder类的使用,包括其主要方法如append和insert的功能与操作方式,以及如何利用StringBuilder进行字符串处理,例如替换字符串中的空格。同时,文章提到了StringBuilder的容量管理、多线程安全性和构造方法,为开发者提供了全面的理解。

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

    StringBuilder的主要StringBuilder是append和insert方法,它们是重载的,以便接受任何类型的数据。 每个都有效地将给定的数据转换为字符串,然后将该字符串的字符附加或插入字符串构建器。 append方法始终在构建器的末尾添加这些字符; insert方法将insert添加到指定点。

例如,如果z引用当前内容为“ start ”的字符串构建器对象,那么方法调用z.append(“le”)将导致字符串构建器包含“ startle ”,而z.insert(4, “le”)会将字符串构建器更改为包含“ starlet ”。

Sting str == "start";
str.append("le");  //startle
str.insert(4, "le");  //starlet 
  一般情况下,如果某人是指的一个实例StringBuilder ,则sb.append(x)具有相同的效果sb.insert(sb.length(), x) 。

注意

  • 每个字符串构建器都有一个容量。 只要字符串构建器中包含的字符序列的长度不超过容量,则不需要分配新的内部缓冲区。 如果内部缓冲区溢出,则会自动变大。

  • StringBuilder的StringBuilder不能安全使用多线程。 如果需要同步, 那么建议使用StringBuffer 。

  • 除非另有说明,否则将null参数传递给null中的构造函数或方法将导致抛出NullPointerException 。

笔试题
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

public class Solution {
    public String replaceSpace(StringBuffer str) {
        StringBuilder res = new StringBuilder();
    	for(int i = 0; i < str.length(); i++){ 
            if(str.charAt(i) == ' ') res.append("%20");
            else res.append(str.charAt(i));
        }
        return res.toString();
    }
}

构造方法

  StringBuilder() //构造一个没有字符的字符串构建器,初始容量为16个字符。
  StringBuilder(CharSequence seq)  //构造一个包含与指定的相同字符的字符串构建器 CharSequence 。
  StringBuilder(String str)  //构造一个初始化为指定字符串内容的字符串构建器。

方法

类型方法描述
StringBuilderappend(boolean b)将 boolean参数的字符串表示附加到序列中。
StringBuilderappend(char c)将 char参数的字符串表示附加到此序列。
StringBuilderappend(char[] str)将 char数组参数的字符串表示追加到此序列。
StringBuilderappend(char[] str, int offset, int len)将 char数组参数的子阵列的字符串表示附加到此序列。
StringBuilderappend(CharSequence s, int start, int end)追加指定的序列 CharSequence的序列。
StringBuilderdelete(int start, int end)删除此序列的子字符串中的字符。
StringBuilderdeleteCharAt(int index)删除 char在这个序列中的指定位置。
StringBuilderinsert(int offset, char c)在此序列中插入 char参数的字符串表示形式。
intindexOf(String str)返回指定子字符串第一次出现的字符串内的索引。

更多方法详见官方文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值