【问题标题】:Regex.Replace, String.Replace or StringBuilder.Replace which is the fastest?Regex.Replace、String.Replace 或 StringBuilder.Replace 哪个最快?
【发布时间】:2010-12-09 21:01:39
【问题描述】:

我需要将函数返回的字符串中的所有System.Environment.Newline(s) 替换为System.Environment.Newline + \t(因为我正在尝试应用缩进),并且我需要多次这样做。

我的问题是哪一种是最有效的方法?

我知道StringBuilderString.Replace 快,但我不知道Regex.Replace

【问题讨论】:

  • 已通过调试工具箱进行基准测试blogs.msdn.com/debuggingtoolbox/archive/2008/04/02/…
  • 感谢 Shay,因为基准 sting.replace 是最好的。 PS:如果有人不想阅读这篇文章,我建议阅读所有 cmets,因为他们一开始没有做正确的测试。

标签: .net performance string


【解决方案1】:

如果您只是想在单个字符串中执行此操作,我希望 string.Replace 与其他任何操作一样快。 StringBuilder 在您想要执行多个单独 步骤并希望避免在每个步骤上创建中间字符串时很有用。

您是否对 string.Replace 进行了基准测试,以确定它是否足够快?

我个人只会在实际处理模式时才开始使用正则表达式,而不仅仅是固定的字符序列。如果它的性能绝对至关重要,那么您当然也可以对其进行基准测试。

【讨论】:

    【解决方案2】:

    编译的正则表达式会更快,但是,除非字符串很大并且在无数个字符串上运行,String.Replace() 是为了可读性而要走的路。

    【讨论】:

      猜你喜欢
      • 2013-10-03
      • 1970-01-01
      • 2011-09-25
      • 2013-05-08
      • 1970-01-01
      • 2011-05-20
      • 2010-09-22
      • 2010-10-03
      • 2015-04-20
      相关资源
      最近更新 更多