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
学习之StringBuilder
时间: 2024-10-14 06:05:38