1)此类表示值为可变字符序列的类似字符串的对象。之所以说值是可变的,是因为在通过追加、移除、替换或插入字符而创建它后可以对它进行修改。无法继承此类。
2)命名空间:System.Text
程序集:mscorlib(在 mscorlib.dll 中)
3)StringBuilder 的容量是实例在任何给定时间可存储的最大字符数,并且大于或等于实例值的字符串表示形式的长度。容量可通过Capacity 属性或EnsureCapacity 方法来增加 或减少,但它不能小于 Length属性的值。如果在初始化 StringBuilder 的实例时没有指定容量或最大容量,则使用特定于实现的默认值16。
4)String 或 StringBuilder 对象的串联操作的性能取决于内存分配的发生频率。String 串联操作每次都分配内存,而 StringBuilder 串联操作仅当 StringBuilder 对象缓冲区太小 而无法容纳新数据时才分配内存。因此,如果串联固定数量的 String 对象,则 String 类更适合串联操作。这种情况下,编译器甚至会将各个串联操作组合到一个操作中。如果串 联任意数量的字符串,则 StringBuilder 对象更适合串联操作;例如,某个循环对用户输入的任意数量的字符串进行串联。
5)继承层次结构: System.Text.StringBuilder
6)下面的代码示例演示如何调用由 StringBuilder 类定义的多个方法。
1 using System; 2 using System.Text; 3 4 public sealed class App 5 { 6 static void Main() 7 { 8 // Create a StringBuilder that expects to hold 50 characters. 9 // Initialize the StringBuilder with "ABC". 10 StringBuilder sb = new StringBuilder("ABC", 50); 11 12 // Append three characters (D, E, and F) to the end of the StringBuilder. 13 sb.Append(new char[] { 'D', 'E', 'F' }); 14 15 // Append a format string to the end of the StringBuilder. 16 sb.AppendFormat("GHI{0}{1}", 'J', 'k'); 17 18 // Display the number of characters in the StringBuilder and its string. 19 Console.WriteLine("{0} chars: {1}", sb.Length, sb.ToString()); 20 21 // Insert a string at the beginning of the StringBuilder. 22 sb.Insert(0, "Alphabet: "); 23 24 // Replace all lowercase k's with uppercase K's. 25 sb.Replace('k', 'K'); 26 27 // Display the number of characters in the StringBuilder and its string. 28 Console.WriteLine("{0} chars: {1}", sb.Length, sb.ToString()); 29 } 30 } 31 32 // This code produces the following output. 33 // 34 // 11 chars: ABCDEFGHIJk 35 // 21 chars: Alphabet: ABCDEFGHIJK