c#中的可变字符串

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