StringBuilder
- StringBuilder类来自于System.Text命名空间的一个对象,在使用的时候先得对StringBuilder进行初始化,在初始化的时候可以指定初始字符串以及初始长度。
- 创建StringBuilder类的新实例
通过用一个重载的构造函数方法初始化变量,可以创建 StringBuilder 类的新实例。
StringBuilder str = new StringBuilder("hello");
Console.WriteLine(str);
- 设置容量和长度
虽然StringBuilder对象是动态对象,允许扩充它所封装的字符串中字符的数量,但是您可以为它可容纳的最大字符数指定一个值。此值称为该对象的容量,不应将它与当前StringBuilder对象容纳的字符串长度混淆在一起。例如,可以创建StringBuilder类的带有字符串“Hello”(长度为5)的一个新实例,同时可以指定该对象的最大容量为20。当修改StringBuilder时,在达到容量之前,它不会为其自己重新分配空间。当达到容量时,将自动分配新的空间且容量翻倍。可以使用重载的构造函数之一来指定StringBuilder类的容量。以下代码示例指定可以将MyStringBuilder对象扩充到最大25个空白。
StringBuilder str = new StringBuilder("英莱特科技",20);
- 常用的方法函数
4.1 Append方法:可用来将文本或对象的字符串表示形式添加到由当前StringBuilder对象表示的字符串的结尾处。将根据需要自动分配空间。
StringBuilder str = new StringBuilder("好好学习");
str.Capacity = 20;
str.Append("天天向上");
4.2 AppendFormat方法:将文本添加到StringBuilder的结尾处,而且实现了IFormattable接口,因此可接受格式化部分中描述的标准格式字符串。可以使用此方法来自定义变量的格式并将这些值追加到StringBuilder的后面。
4.3 Insert方法:将字符串或对象添加到当前StringBuilder中的指定位置。以下示例使用此方法将一个单词插入到StringBuilder的第3个位置。
StringBuilder str = new StringBuilder("英莱特科技有限公司");
str.Insert(3, "信息");
Console.WriteLine(str);
4.4 Remove方法:从当前StringBuilder中移除指定数量的字符,移除过程从指定的从零开始的索引处开始。
StringBuilder str = new StringBuilder("英莱特科技有限公司");
str.Remove(5,4);
Console.WriteLine(str);
4.5 Replace方法:可以用另一个指定的字符来替换 StringBuilder 对象内的字符。
StringBuilder str = new StringBuilder("英莱特科技有限公司");
str.Replace("英莱特","InLett");
Console.WriteLine(str);
- StringBuilder和String的区别
5.1 C#提供了别名string(s小写)来代表System.String类。如果在代码中使用String,必须在代码一开始添加using System; 这一行。使用内建的别名string则不需要添加using System;
5.2 **string对象是不可变的。**包括长度或者其中的任何字符都是不可以改变的。C#中不能使用new string()来构造一个string对象。
5.3 **StringBuilder是可变的。**它是专门用于对字符串和字符执行动态操作的类。StringBuilder在内部有一个足够长的字符数组用于存放字符串对象,当字符串长度没超过字符数组长度时,所有操作都是针对同一个字符数组。当长度超过时,StringBuilder将自动创建一个更长的数组,把原来的数据复制到新数组中。