C#揭秘-StringBuilder类(5.2)
StringBuilder类可以直接操作字符串,需要做很多修改字符串内容时,用这个类是最好的解决文案。它与字符串对象不同,不会引发在每一个方法调用上创建一个新对象所带来的开销。
- Tips:何时使用StringBuilder而不是string的经验法则?
- 使用StringBuilder,在初始化时会产生开销,而使用字符串类型,在每一次修改字符串时都会产生开销。在对字符串进行4次处理后应该开始使用StringBuilder。
多数StringBuilder方法与字符串方法相同。下面几个方法为StringBuilder才有的。
- Append方法:将一个字符串对象添加到了StringBuilder末尾。
View Code
1 StringBuilder myStringBuilder; 2 myStringBuilder = new StringBuilder("Original"); 3 4 myStringBuilder.Append("Appended"); 5 6 Console.WriteLine("{0}", myStringBuilder);
结果是:OriginalAppended
- AppendFormat方法:使用一个格式化字符串来修改实际附加的字符串。
View Code
1 StringBuilder myStringBuilder; 2 myStringBuilder = new StringBuilder("Original"); 3 4 myStringBuilder.AppendFormat("{0,9}", "Appended"); 5 6 Console.WriteLine("{0}", myStringBuilder);
使用AppendFormat方法将Appended字符串格式化9个字符,然后将它附加到myStringBuilder上,结果是Original Appended,即两个单词之间多了一个空格,因为Appended被格式化为了9个字符。
- EnsureCapacity方法:确保StringBuilder将有一个指定的最小容量。
- ToString()方法:将StringBuilder转换为一个字符串。
使用StringBuilder时,有可能需要将它所包含的字符串赋值给string,因为它们是不同类型,必须用ToString()方法。