Regex.Replace,String.Replace或StringBuilder.Replace哪个最快?

时间:2009-10-25 08:54:48

标签: .net performance string

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

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

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

2 个答案:

答案 0 :(得分:14)

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

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

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

答案 1 :(得分:3)

编译的正则表达式会更快,但是,除非字符串很大并且在无数字符串上运行,String.Replace()是为了便于阅读的方式。