首页 > 编程笔记 > C#笔记 阅读:20

C# StringBuilder类的定义和使用(附带实例)

对于创建成功的 string 字符串,它的长度是固定的,内容不能被改变和编译。虽然使用“+”可以达到附加新字符或字符串的目的,但“+”会产生一个新的 string 对象,会在内存中创建新的字符串对象。如果重复地对字符串进行修改,将会增加系统开销。

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)

例如,创建一个 StringBuilder 对象,其初始引用的字符串为“Hello World!”,代码如下:
StringBuilder MyStringBuilder = new StringBuilder("Hello World!");
StringBuilder 类表示值为可变字符序列的类似字符串的对象,之所以说值是可变的,是因为在通过追加、删除、替换或插入字符而创建它后可以对它进行修改。

C# StringBuilder类的使用

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#基

相关文章