黑马程序员技术交流社区
标题:
求指点:StringBuilder 类的讲解,代码举例有注释,感谢,不...
[打印本页]
作者:
袁晓俊
时间:
2014-5-10 11:12
标题:
求指点:StringBuilder 类的讲解,代码举例有注释,感谢,不...
本帖最后由 袁晓俊 于 2014-5-10 22:29 编辑
求指点:StringBuilder 类的讲解,代码举例有注释,感谢,不要百度哦。
作者:
leayon
时间:
2014-5-10 13:59
这东西网上一搜一大堆,msdn上也有,很容易就能找到的。
作者:
亚伦
时间:
2014-5-10 14:18
这是我自己总结的关于StringBuilder的笔记:
System.Text.StringBuilder 和 System.String 很相似,它们都定义了很多用来替换或格式化片段的方法。
System.Text.StringBuilder 的独特之处在于,当我们调用这个类型的成员时,都是直接修改对象内部的字符数据(因此更高效),而不是获得修改后格式的数据副本。
另外,string支持深复制,而StringBuilder支持的是浅复制。
如果我们正在构建使用大量文本数据的应用程序(如字处理程序),应该使用 System.Text.StringBuilder 而不是 System.String
/// <summary>
/// 使用System.Text.StringBuilder创建字符串
/// </summary>
private static void FunWithStringBuilder()
{
Console.WriteLine("=> Using the StringBuilder:");
// 默认情况下,StringBuilder的实例只能保持16个字符以下的字符串,
// 如果追加的字符数超过规定的限制,StringBuilder的实例会自动将它的数据复制到新的实例中,并根据规定的限制来扩大缓冲区
// 我们可以向内部缓冲区追加数据,并且随意替换(或移除)字符
// 创建 StringBuilder实例
StringBuilder sb = new StringBuilder("****** Fantastic Games ******");
//编译错误!无法将string隐式转换为System.Text.StringBuilder。
//StringBuilder sb3 = "****** Fantastic Games ******";
// 在 StringBuilder实例追加指定字符串的副本
sb.Append("\n");
sb.AppendLine("Half Life");
sb.AppendLine("Morrowind");
sb.AppendLine("Deus Ex " + " 2");
sb.AppendLine("System Shock");
Console.WriteLine(sb);
sb.Replace("2", "Invisible War"); // 把sb中的"2"替换为"Invisible War"
Console.WriteLine(sb);
Console.WriteLine("sb has {0} chars.", sb.Length);
// 通过其他构造函数来创建一个初始大小为256的StringBuilder
StringBuilder sb2 = new StringBuilder("****** Fantastic Games ******", 256);
}
复制代码
作者:
/fendou
时间:
2014-5-10 15:35
有时候也需要自己动手Google、百度下的
作者:
伪善者。
时间:
2014-5-10 15:37
我的理解是StringBuilder类就是比String更方便快捷地 操作 节省内存
作者:
袁晓俊
时间:
2014-5-10 20:28
感谢,,,,,,,,,,,
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2