字符串比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
  • 如果串联一个字符串超过4次,请使用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?