System.Text.StringBuilder类型
2010-01-09 15:34
387 查看
如果随便弃用的话,字符串类型可能会很低效,因此.NET基类库提供了System.Text命名空间。在这个(相对较小的)命名空间中有一个叫做StringBuilder的类。和System.String类相似,StringBuilder定义了很多用来替换或格式化片段的方法。如果我们希望在C#代码文件中使用这个类型,第一步就是导入正确的命名空间:
StringBuilder的独特之处在于,当我们调用这个类型成员时,都是直接修改对象内部的字符数据(因此更高效),而不是获取按修改后格式的数据副本。当创建StringBuilder实例时,可以通过其中一个构造函数来提供对象的初始值。如果你对构造函数不是很熟悉,可以理解为构造函数允许我们在使用new关键字时使用初始状态来创建对象。如下是StringBuilder的使用:
在这里,我们构建了一个StringBuilder,并且将初始值设置为"**** Fantastic Games ****"。可以看到,我们向内部缓冲区追加数据,并且可以随意替换(或移除)字符。默认情况下,StringBuilder只能保存16个字符以下的字符串,然而,我们可以通过其他构造函数参数来改变这个初始值。
如果追加的字符数超过规定的限制,StringBuilder对象会将它的数据复制到新的实例中,并根据规定的限制来扩大缓冲区。图3-14演示了当前辅助方法的输出。
源代码 FunWithString项目的源代码位于Chapter 3子目录下。
// StringBuilder在这里。 using System.Text; |
static void FunWithStringBuilder() { Console.WriteLine("=> Using the StringBuilder:"); StringBuilder sb = new StringBuilder("**** Fantastic Games ****"); sb.Append("\n"); sb.AppendLine("Half Life"); sb.AppendLine("Beyond Good and Evil"); sb.AppendLine("Deus Ex 2"); sb.AppendLine("System Shock"); Console.WriteLine(sb.ToString()); sb.Replace("2", "Invisible War"); Console.WriteLine(sb.ToString()); Console.WriteLine("sb as {0} chars.", sb.Length); Console.WriteLine(); } |
// 创建一个初始大小为256的StringBuilder。 StringBuilder sb = new StringBuilder("**** Fantastic Games ****", 256); |
图3-14 StringBuilder比string更 |
相关文章推荐
- System.Text.StringBuilder类型
- System.Text.StringBuilder 类
- System.Text.StringBuilder拼装table
- system.string 和System.Text.StringBuilder的不同
- System.Text.StringBuilder 类
- System.Text.StringBuilder 和System.String
- mTvNewCode.getText()是个SpannableStringBuilder类型不能强转为string,咋办?
- System.String和System.Text.StringBuilder
- 学习笔记-- 使用System.Text.StringBuilder的方法和属性
- System.Text.StringBuilder 类
- system.string 和 System.Text.StringBuilder的不同
- c#System.String类中String字符串和System.Textr.StringBuilder的一些方法
- C/C++字符串处理盘点:Char*/String/StringBuilder/TextPool/Rope
- 类型“string”必须是不可为 null 的值类型才能用作泛型类型或方法“System.Nullable<T>”中的参数“T”
- Problems with System.OutOfMemoryException At System.String.GetStringForStringBuilder in 32-Bit Managed Solutions
- 无法将类型为“System.Int32”的对象强制转换为类型“System.String”
- 未能加载类型“System.Web.Mvc.ViewPage<String>”
- System.String是值类型还是引用类型
- 类型“System.DBNull”的值无法转换为“String”最好的解决方法
- TextView局部文字样式美化(SpannableStringBuilder)