可变字符串是那些可以修改的字符串。 通常,当我们在 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
