gpt4 book ai didi

.net - 我应该使用哪个类在字符串中进行多次替换?

转载 作者:行者123 更新时间:2023-12-04 06:37:31 25 4
gpt4 key购买 nike

我必须进行大量的文本替换。哪个类最适合以高性能方式实现这一点?是 StringBuilder 吗?

StringBuilder stringBuilder=new StringBuilder(startString);
stringBuilder.Replace(literala1,literala2);
stringBuilder.Replace(literalb1,literalb2);
stringBuilder.Replace(literalc1,literalc2);
...

还是有更好的类(class)来做到这一点?顺便说一下,文字将主要是常量。

最佳答案

Roberto Farah 的博客详细讨论了这个确切的问题: Comparing RegEx.Replace, String.Replace and StringBuilder.Replace – Which has better performance?

我将在这里总结这些发现,这让许多 .NET 开发人员感到震惊。事实证明,对于相对简单的字符串替换(在匹配不必区分大小写的情况下), RegEx.Replace() 性能最差, String.Replace() 以最好的方式获胜。

还提供了指向 CodeProject 文章的链接,该文章证实了这些发现:StringBuilder vs String / Fast String Operations with .NET 2.0

一般来说,我会说规则应该如下:

  • 使用 String.Replace()当您只需要进行少量替换时(比如 5 次左右)
  • 使用 StringBuilder.Replace()当您必须进行大量替换时
  • 保留正则表达式 ( RegEx.Replace ) 仅用于最复杂的场景,在这些场景中,值得为处理所有必要替换的单个表达式的优雅付出轻微的性能损失。
  • 忽略上述所有准则并使用使您的代码最具可读性或表达性的任何内容。过早地优化这样的事情不值得我花时间写这个答案。
  • 关于.net - 我应该使用哪个类在字符串中进行多次替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4686983/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com