System.Text.StringBuilder可以动态创建字符串。同String类中一般的字符串不同,动态字符串的字符可以直接修改,在一般的字符串中,修改的总是字符串的拷贝。同时StringBuilder方法效率更高并且提供了更有效的字符串操作能力。
/* Example9_2.cs illustrates the use of StringBuilder objects */ using System; using System.Text; class Example9_2 { public static void DisplayProperties( string name, StringBuilder myStringBuilder ) { // display the properties for the StringBuilder object Console.WriteLine(name + ".Length = " + myStringBuilder.Length); Console.WriteLine(name + ".Capacity = " + myStringBuilder.Capacity); Console.WriteLine(name + ".MaxCapacity = " + myStringBuilder.MaxCapacity); } public static void Main() { // create some StringBuilder objects StringBuilder myStringBuilder = new StringBuilder(); int capacity = 50; StringBuilder myStringBuilder2 = new StringBuilder(capacity); int maxCapacity = 100; StringBuilder myStringBuilder3 = new StringBuilder(capacity, maxCapacity); string myString = "To be or not to be"; StringBuilder myStringBuilder4 = new StringBuilder(myString); int startIndex = 0; int stringLength = myString.Length; StringBuilder myStringBuilder5 = new StringBuilder(myString, startIndex, stringLength, capacity); // display the StringBuilder objects' properties DisplayProperties("myStringBuilder", myStringBuilder); DisplayProperties("myStringBuilder2", myStringBuilder2); DisplayProperties("myStringBuilder3", myStringBuilder3); DisplayProperties("myStringBuilder4", myStringBuilder4); DisplayProperties("myStringBuilder5", myStringBuilder5); // use the Append() method to append two strings, an int, and a bool // to myStringBuilder myStringBuilder.Append(myString); myStringBuilder.Append(", that is the question ... "); int myInt = 1234; myStringBuilder.Append(myInt); bool myBool = true; myStringBuilder.Append(myBool); // use the Append() method to append a character to myStringBuilder myStringBuilder.Append('z', 5); // use the Append() method to append a substring to myStringBuilder myStringBuilder.Append("Here's another string", 0, 4); // display the contents of myStringBuilder Console.WriteLine("myStringBuilder = " + myStringBuilder); // use the AppendFormat() method to add a formatted // string containing a floating point number to myStringBuilder float myFloat = 1234.56789f; myStringBuilder.AppendFormat("{0, 10:f3}", myFloat); Console.WriteLine("myStringBuilder = " + myStringBuilder); // use the Insert() method to insert strings into myStringBuilder myStringBuilder.Insert(6, "friends, "); myStringBuilder.Insert(22, "Romans, ", 3); Console.WriteLine("myStringBuilder = " + myStringBuilder); // use the Remove() method to remove part of myStringBuilder myStringBuilder.Remove(14, 7); Console.WriteLine("myStringBuilder = " + myStringBuilder); // use the Replace() method to replace part of myStringBuilder myStringBuilder.Replace(',', '?'); Console.WriteLine("myStringBuilder = " + myStringBuilder); // use the ToString() method to convert myStringBuilder // to a string string myString2 = myStringBuilder.ToString(); Console.WriteLine("myString2 = " + myString2); } }