sách gpt4 ai đã đi

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

In lại 作者:行者123 更新时间:2023-12-04 06:37:31 25 4
mua khóa gpt4 Nike

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

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

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

1 Câu trả lời

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

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

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

    25 4 0
    行者123
    Hồ sơ cá nhân

    Tôi là một lập trình viên xuất sắc, rất giỏi!

    Nhận phiếu giảm giá Didi Taxi miễn phí
    Mã giảm giá Didi Taxi
    Giấy chứng nhận ICP Bắc Kinh số 000000
    Hợp tác quảng cáo: 1813099741@qq.com 6ren.com