可变字符串是那些可以修改的字符串。 通常,当我们在 C# 中修改现有字符串时,我们认为我们已将更改应用于现有对象,实际上,当我们对字符串进行任何类型的修改时,都会创建一个新对象,该对象引用修改后的字符串和旧的 变得未被引用,因此垃圾收集器然后收集该未被引用的对象。 如果出现我们不断修改字符串的情况,则否。 未引用对象的数量会增加,那么这将是垃圾收集器释放未引用对象的开销。 因此,在这种情况下,我们将使用 StringBuilder 类而不是使用字符串类。 此类允许在同一对象中进行修改。 因此在这种情况下,垃圾收集器的开销将减少,程序的性能将得到提高。
让我们看一下与 StringBuilder 类相关的以下操作。
属性或者方法 | 描述 |
---|---|
Length | 获取编号 StringBuilder 对象包含的字符。 |
Capacity | 获取 StringBuilder 对象的当前容量。 |
Append() | 在此 StringBuilder 实例的末尾附加指定对象的字符串表示形式。 |
Insert() | 在此 StringBuilder 实例的指定索引处追加指定对象的字符串表示形式。 |
Replace(string,string) | 用此 Stringbuilder 对象中提供的第二个字符串替换所有出现的第一个提供的字符串。 |
Remove(int st,int length) | 删除当前 StringBuilder 对象中指定长度的索引位置 st 的所有字符。 |
Equals(StringBuilder) | 使用此实例检查提供的 stringbuilder 对象,如果两者相同,则返回 true:否则,返回 false。 |
using System.Text; namespace ConsoleApplication8 { class Program { static void Main(string[] args) { StringBuilder sb = new StringBuilder("Onitroad"); string s = "is a good website."; Console.WriteLine("Length of the stringbuilder {0} is {1}",sb,sb.Length); Console.WriteLine("Capacity of the stringbuilder {0} is {1}",sb,sb.Capacity); Console.WriteLine("StringBuilder before appending is {0}", sb); Console.WriteLine("StringBuilder after appending {0} is {1}",s,sb.Append(s)); Console.WriteLine("stringbuilder after inserting now is {0}",sb.Insert(11,"now")); Console.WriteLine("StringBuilder after removing 'is' is {0}",sb.Remove(8,3)); Console.WriteLine("Stringbuilder replacing all 'o' with 'x' is {0}", sb.Replace('o', 'x')); Console.ReadLine(); } } }
日期:2020-04-11 23:03:45 来源:oir作者:oir