C#中stringBuilding类的使用总结

  StringBuilder到底是是什么。我这里先不说,先说说咱们熟悉的string。

  String就是我们常说的字符串类。但是string类是不可变的,据官方报道,对string类的任何改变,都会返回一个新的string类对象。也就是说,我们每次使用string类中的方法改变字符串时,就要在内存中创建一个新的字符串对象,即需要为新的字符串对象分配新的空间。当我们需要大量的修改字符串时,就会造成一大部分的内存开销,从而浪费的宝贵的内存空间。为此stringBuilder就从一定程度上解决了这样的问题,当修改字符串的时候,他不需要重新创建对象,从而提升了性能。

  既然string类创建字符串使用起来非常 的方便,那么stringBuiler使用起来也不会难道哪里去。它仅仅需要一个重载一个构造函数,既可以初始化创建一个stringBuilder实例。如下:

StringBuilder strB = new StringBuilder("Howare you !");

下面来大概介绍一下我们常用的方法吧。

(一) 设置容量和长度

  之所以上面说stringBuilder类在字符串改变时不会创建新的对象,是因为stringBuilder是动态分配内存的。也正是因为其是动态分配内存,所以在创建stringBuilder对象时最好为其设置好字符串容量大小。这样的话可以免去计算机计算其需要分配的内存,节省了计算时间,提高效率。

Ps:我们这里的容量和字符串的长度是有点区别的。

  例如,在我们创建stringBuilder对象时,字符串“howare you !”长度是13,但是我们可以为stringBuilder创建一个25的容量。当修改后的字符串不到25时,这个对象不会重新分配空间,但是修改的字符串超过25时,其自动将空间翻倍。可以使用stringBuilder的另一个构造函数来解决。

stringBuilderstrB =new stringBuilder(”How are you !” , 25);

  另外后期可以使用stringBuilder的capacity属性来修改,这里不再累述。

(二)Append 方法可用来将文本或对象的字符串表示形式添加到由当前 StringBuilder 对象表示的字符串的结尾处。以下示例将一个 StringBuilder 对象初始化为“Hello World”,然后将一些文本追加到该对象的结尾处。将根据需要自动分配空间。

StringBuilder strB = newStringBuilder("How are you !");
StrB.Append("I am fine!");
Console.WriteLine(StrB);

此示例将How are you ! I am fine! 显示在窗体上。

(三)AppendFormat 方法将文本添加到StringBuilder 的结尾处,而且实现了 IFormattable 接口,因此可接受格式化部分中描述的标准格式字符串。可以使用此方法来自定义变量的格式并将这些值追加到 StringBuilder 的后面。以下示例使用 AppendFormat 方法将一个设置为货币值格式的整数值放置到 StringBuilder 的结尾。

int MyInt = 25;
StringBuilderstrB = newStringBuilder("Your total is ");
StrB.AppendFormat("{0:C} ",MyInt);
Console.WriteLine(StrB);

此示例将 Your total is $25.00 显示在窗体上。

(四)Insert 方法将字符串或对象添加到当前 StringBuilder 中的指定位置。以下示例使用此方法将一个单词插入到 StringBuilder 的第六个位置。

StringBuilderstrB = newStringBuilder("Hello World!");
StrB.Insert(6,"Beautiful ");
Console.WriteLine(StrB);

此示例将 Hello Beautiful World! 显示在窗体上。

(五)可以使用 Remove 方法从当前 StringBuilder中移除指定数量的字符,移除过程从指定的从零开始的索引处开始。以下示例使用 Remove 方法缩短 StringBuilder。

StringBuilderstrB = newStringBuilder("Hello World!");
StrB.Remove(5,7);
Console.WriteLine(StrB);

此示例将 Hello 显示在窗体上。

(六)使用 Replace 方法,可以用另一个指定的字符来替换 StringBuilder 对象内的字符。以下示例使用 Replace 方法来搜索 StringBuilder 对象,查找所有的感叹号字符 (!),并用问号字符 (?) 来替换它们。

StringBuilder strB = newStringBuilder("Hello World!");
StrB.Replace('!', '?');
Console.WriteLine(StrB);

此示例将 Hello World? 显示在窗体上

总结:

相比之下,stringBuilder的用法和string类的用法是完全一样的。所以无需刻意去学习。

评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

aiming66

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

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

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

打赏作者

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

抵扣说明:

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

余额充值