C# StringBuilder类的定义和使用(附带实例)
对于创建成功的 string 字符串,它的长度是固定的,内容不能被改变和编译。虽然使用“+”可以达到附加新字符或字符串的目的,但“+”会产生一个新的 string 对象,会在内存中创建新的字符串对象。如果重复地对字符串进行修改,将会增加系统开销。
C# 中提供了一个可变的字符序列 StringBuilder 类,可大大提高频繁增加字符串的效率。
StringBuilder 类有 6 种不同的构造方法,分别如下:
例如,创建一个 StringBuilder 对象,其初始引用的字符串为“Hello World!”,代码如下:
StringBuilder 类提供的方法有多种使用形式,开发者可以根据需要选择合适的使用形式。
【实例】创建一个控制台应用程序,声明一个 int 类型的变量 Num,并初始化为 49,然后创建一个 StringBuilder 对象 SBuilder,其初始值为“C语言中文网”,之后分别使用 StringBuilder 类的 Append()、AppendFormat()、Insert()、Remove() 和 Replace() 方法对 StringBuilder 对象进行操作,并输出相应的结果。代码如下:
程序的运行结果为:
C# 中提供了一个可变的字符序列 StringBuilder 类,可大大提高频繁增加字符串的效率。
C# StringBuilder类的定义
StringBuilder 类位于 System.Text 命名空间中,如果要创建 StringBuilder 对象,首先必须引用该命名空间。StringBuilder 类有 6 种不同的构造方法,分别如下:
public StringBuilder() public StringBuilder(int capacity) public StringBuilder(string value) public StringBuilder(int capacity, int maxCapacity) public StringBuilder(string value, int capacity) public StringBuilder(string value, int startIndex, int length, int capacity)
- capacity:StringBuilder 对象建议的起始大小;
- value:字符串,包含用于初始化 StringBuilder 对象的子字符串;
- maxCapacity:当前字符串可包含的最大字符数;
- startIndex:value 中子字符串开始的位置;
- length:子字符串中的字符数。
例如,创建一个 StringBuilder 对象,其初始引用的字符串为“Hello World!”,代码如下:
StringBuilder MyStringBuilder = new StringBuilder("Hello World!");StringBuilder 类表示值为可变字符序列的类似字符串的对象,之所以说值是可变的,是因为在通过追加、删除、替换或插入字符而创建它后可以对它进行修改。
C# StringBuilder类的使用
StringBuilder 类中常用的方法及说明如下表所示:方法 | 说明 |
---|---|
Append() | 将文本或字符串追加到指定对象的末尾 |
AppendFormat() | 自定义变量的格式,并将这些值追加到 StringBuilder 对象的末尾 |
Insert() | 将字符串或对象添加到当前 StringBuilder 对象中的指定位置 |
Remove() | 从当前 StringBuilder 对象中删除指定数量的字符 |
Replace() | 用另一个指定的字符来替换 StringBuilder 对象内的字符 |
StringBuilder 类提供的方法有多种使用形式,开发者可以根据需要选择合适的使用形式。
【实例】创建一个控制台应用程序,声明一个 int 类型的变量 Num,并初始化为 49,然后创建一个 StringBuilder 对象 SBuilder,其初始值为“C语言中文网”,之后分别使用 StringBuilder 类的 Append()、AppendFormat()、Insert()、Remove() 和 Replace() 方法对 StringBuilder 对象进行操作,并输出相应的结果。代码如下:
static void Main(string[] args) { int Num = 49; // 声明一个int类型变量Num并初始化为368 // 实例化一个StringBuilder类,并初始化为“明日科技” StringBuilder SBuilder = new StringBuilder("C语言中文网"); SBuilder.Append(" C#基础教程"); // 使用Append方法将字符串追加到SBuilder的末尾 Console.WriteLine(SBuilder); // 输出SBuilder // 使用AppendFormat方法将字符串按照指定的格式追加到SBuilder的末尾 SBuilder.AppendFormat("{0:C0}", Num); Console.WriteLine(SBuilder); // 输出SBuilder SBuilder.Insert(0, "教程: "); // 使用Insert方法将“软件: ”追加到SBuilder的开头 Console.WriteLine(SBuilder); // 输出SBuilder // 使用Remove方法从SBuilder中删除索引14以后的字符串 SBuilder.Remove(14, SBuilder.Length - 14); Console.WriteLine(SBuilder); // 输出SBuilder // 使用Replace方法将“软件: ”替换成“软件工程师必备” SBuilder.Replace("教程:", "编程入门必备"); Console.WriteLine(SBuilder); // 输出SBuilder Console.ReadLine(); }第 9 行代码中的{0:C0}表示将数字格式化为货币形式显示时,不显示小数。
程序的运行结果为:
C语言中文网 C#基础教程
C语言中文网 C#基础教程$49
教程: C语言中文网 C#基础教程$49
教程: C语言中文网 C#基
编程入门必备 C语言中文网 C#基