C#中StringBuilder类 StringBulider与string区别

StringBuilder是什么

StringBuilder类来自于System.Text命名空间的一个对象,在使用的时候先得对StringBuilder进行初始化,在初始化的时候可以指定初始字符串以及初始长度。

创建StringBuilder类的新实例

通过用一个重载的构造函数方法初始化变量,可以创建 StringBuilder 类的新实例。

设置容量和长度

虽然StringBuilder对象是动态对象,允许扩充它所封装的字符串中字符的数量,但是您可以为它可容纳的最大字符数指定 一个值。此值称为该对象的容量,不应将它与当前StringBuilder对象容纳的字符串长度混淆在一起。例如,可以创建
StringBuilder类的带有字符串“Hello”(长度为5)的一个新实例,同时可以指定该对象的最大容量为20。当修改
StringBuilder时,在达到容量之前,它不会为其自己重新分配空间。当达到容量时,将自动分配新的空间且容量翻倍。可以使用重载的构造函数之一来指定StringBuilder类的容量。以下代码示例指定可以将MyStringBuilder对象扩充到最大
25个空白。

可以使用读/写Capacity属性来设置对象的最大长度。以下代码示例使用Capacity属性来定义对象的最大长度。

常用的方法函数
  1. Append方法:可用来将文本或对象的字符串表示形式添加到由当前StringBuilder对象表示的字符串的结尾处。将根 据需要自动分配空间。
  2. AppendFormat方法:将文本添加到StringBuilder的结尾处,而且实现了IFormattable接口,因此可接受格式化部分中描述的标准格式字符串。可以使用此方法来自定义变量的格式并将这些值追加到StringBuilder的后面。
  3. Insert方法:将字符串或对象添加到当前StringBuilder中的指定位置。以下示例使用此方法将一个单词插入到
    StringBuilder的第3个位置。
  4. Remove方法:从当前StringBuilder中移除指定数量的字符,移除过程从指定的从零开始的索引处开始。
  5. Replace方法:可以用另一个指定的字符来替换 StringBuilder 对象内的字符。
StringBuilder和String的区别
  1. C#提供了别名string(s小写)来代表System.String类。如果在代码中使用String,必须在代码一开始添加usingSystem; 这一行。使用内建的别名string则不需要添加using System;
  2. string对象是不可变的。包括长度或者其中的任何字符都是不可以改变的。C#中不能使用new string()来构造一个string对象。
  3. StringBuilder是可变的。它是专门用于对字符串和字符执行动态操作的类。StringBuilder在内部有一个足够长的 字符数组用于存放字符串对象,当字符串长度没超过字符数组长度时,所有操作都是针对同一个字符数组。当长度超过时,StringBuilder将自动创建一个更长的数组,把原来的数据复制到新数组中。
发布了117 篇原创文章 · 获赞 111 · 访问量 9666

猜你喜欢

转载自blog.csdn.net/dust__/article/details/103465494