Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net Regex.Replace、String.Replace或StringBuilder.Replace哪个最快?_.net_Performance_String - Fatal编程技术网

.net Regex.Replace、String.Replace或StringBuilder.Replace哪个最快?

.net Regex.Replace、String.Replace或StringBuilder.Replace哪个最快?,.net,performance,string,.net,Performance,String,我需要将函数返回的字符串中的所有System.Environment.Newline替换为System.Environment.Newline+\t(当我尝试应用缩进时),并且我需要多次这样做 我的问题是,哪种方法最有效 我知道StringBuilder比String.Replace快,但我不知道Regex.Replace如果你只是想在一个字符串内完成,我希望String.Replace和其他任何东西一样快StringBuilder在您希望执行多个单独的步骤并避免在每个步骤上创建中间字符串时非常

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

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


我知道
StringBuilder
String.Replace
快,但我不知道
Regex.Replace
如果你只是想在一个字符串内完成,我希望
String.Replace
和其他任何东西一样快<代码>StringBuilder在您希望执行多个单独的步骤并避免在每个步骤上创建中间字符串时非常有用

您是否对
字符串进行了基准测试。替换
以确定它是否足够快


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

如果您只是想在单个字符串中完成这项功能,我希望
string.Replace
与其他任何功能一样快<代码>StringBuilder
在您希望执行多个单独的步骤并避免在每个步骤上创建中间字符串时非常有用

您是否对
字符串进行了基准测试。替换
以确定它是否足够快


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

编译的正则表达式速度会更快,但是,除非字符串非常庞大并且在无数字符串上运行,
string.Replace()
是为了可读性而采取的方法。

编译的正则表达式速度会更快,除非字符串非常庞大并且在无数字符串上运行,
string.Replace()
是为了可读性而采取的方法。

已经通过调试工具箱对基准进行了测试,感谢Shay,因为基准测试sting。Replace是最好的。PS:如果有人不想读这篇文章,我建议你阅读所有的评论,因为他们一开始没有做一个正确的测试。调试工具箱中已经有了基准测试,谢谢Shay,因为基准测试是sting.replace是最好的。附言:如果有人不想看这篇文章,我建议你阅读所有的评论,因为他们一开始没有做正确的测试。