字符串比StringBuilder更有用吗?
很多问题已经被问及字符串和字符串生成器之间的差异,大多数人认为字符串生成器比字符串更快。 我很想知道字符串生成器是否太好,为什么字符串在那里? 此外,有些身体可以给我一个例子,其中字符串比字符串生成器更有用吗?
这不是一个更有用的例子...
String
是一个String
- 彼此相邻的一个或多个字符。 如果你想改变一个字符串,它会创建更多的字符串,因为它们是不可变的 。
一个StringBuilder
是一个创建字符串的类。 它提供了一种构建方法,不需要在内存中创建大量的缩进字符串。 最终结果将始终是一个String
。
不要这样做
string s = "my string";
s += " is now a little longer";
要么
s = s + " is now longer again";
这将在内存中创建5个字符串(实际上,请参见下文)。
做这个:
StringBuilder sb = new StringBuilder();
sb.Append("my string");
sb.Append(" is now a little longer");
sb.Append(" is now longer again");
string s = sb.ToString();
这将在内存中创建1个字符串(再次,见下文)。
你可以这样做:
string s = "It is now " + DateTime.Now + ".";
这只会在内存中创建1个字符串。
作为一个侧面提示,创建一个StringBuilder
确实会占用一定量的内存。 作为一个粗略的经验法则:
StringBuilder
。 StringBuilder
。 正如其名称所示,StringBuilder用于构建字符串,而字符串是不可变的字符值。 当你想要传递字符数据时使用字符串,当你想操纵字符数据时使用StringBuilder。
在通过繁重的循环或迭代构建和修改字符串时,StringBuilder是一个更好的选择。
简单的字符串操作,比如几个连接,或者简单地存储一个字符串值,更适合标准字符串对象。
类似的问题? 字符串与StringBuilder
链接地址: http://www.djcxy.com/p/39797.html上一篇: Where are strings more useful than a StringBuilder?
下一篇: Is StringBuilder.Replace() more efficient than String.Replace?