StringBuilder可变字符串类

本文介绍C#中StringBuilder类的使用,包括初始化、追加、格式化、插入、删除和替换等方法,展示了如何利用该类提高字符串操作效率。

C#提供可变字符串类,大大提高频繁增加字符串的效率
public StringBuilder(string value,int cap)(引用的字符,对象的初始大小)

namespace ConsoleApp1
{
    class Program
    {
        static void Main()
        {
            int Num = 1000;
            StringBuilder A = new StringBuilder("呼啦啦啦呦吼吼吼", 100);
            A.Append("乌拉拉");//将文本或字符串追加到对象的末尾
            Console.WriteLine(A);
            A.AppendFormat("{0:C}", Num);//自定义变量的格式并将这些值追加到指定位置
            Console.WriteLine(A);
            A.Insert(0, "名称:");
            Console.WriteLine(A);
            A.Remove(8, A.Length - 8);//删除索引8以后的字符
            Console.WriteLine(A);
            A.Replace("名称:","其实不是名称:");//替换
            Console.WriteLine(A);

        }

    }
    
}

StringBuilder是Java中一个可变字符串类型,它的底层实现是一个数组,当我们往StringBuilder对象中添加字符串时,它会先判断数组是否已满,如果已满就会创建一个新的数组,并将原有的字符串复制到新的数组中,再添加新的字符串。所以StringBuilder对象可以动态的添加和删除字符串,而不需要每次都重新分配内存。 StringBuilder底层实现的具体原理如下: 1. StringBuilder内部维护了一个字符数组char[] value和一个int类型的count,用于记录当前字符串的长度。 2. 当我们向StringBuilder中添加字符串时,如果当前字符数组的长度不足以容纳新的字符串,StringBuilder会先判断是否需要扩容。扩容的规则是按照原数组长度的2倍进行扩容,如果还不够,则直接扩容到新的字符串所需的长度。 3. 如果需要扩容,则会创建一个新的字符数组,将原有的字符串复制到新数组中,并添加新的字符串。 4. 如果不需要扩容,则直接将新的字符串添加到字符数组的末尾,并更新count的值。 5. 当我们需要删除字符串时,StringBuilder会将要删除的字符串从字符数组中移除,并更新count的值。 6. 当我们需要获取StringBuilder对象中的字符串时,它会根据当前count的值,将字符数组中的字符串复制到一个新的字符串中,并返回给调用者。 综上,StringBuilder底层实现的可变字符串原理就是通过动态扩容和字符数组复制来实现。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值