WEB开发网
开发学院软件开发C语言 在C#中优化字符串操作 阅读

在C#中优化字符串操作

 2010-09-30 22:34:50 来源:WEB开发网   
核心提示: 此函数基于IndexOf方法搜索一个字符非常快这个事实的,基本想法非常的简单,在C#中优化字符串操作(4),这个方法先搜索这个单词的第一个字符,如果一旦找到,但是,在这种情况下,它检测下一个的字符,该代码是有点乱

  此函数基于IndexOf方法搜索一个字符非常快这个事实的。

基本想法非常的简单,这个方法先搜索这个单词的第一个字符。如果一旦找到,它检测下一个的字符,该代码是有点乱,因为它包含了很多小的优化。例如,我发现,如果该方法在启动检测这个词的其余部分的“for”循环之前检查第二个字符(第一个已近被找到),平均性能将会更好。

我已经对随机生成的字符串进行大量测试,比较上述所列三种方案和这里是结果:

a、对一个单词的搜索,IndexOf函数速度总是比我的自定义FastIndexOf方法慢20%左右。

b、如果输入字符和匹配字符串都足够的长,正则表达式是最快的方式找到一个字符串,

下图是根据我的测量的值。它显示了两种最快的办法取决于输入字符串的长度:

在C#中优化字符串操作

纵轴表示这个词的长度(以字符数),横轴显示的是(以字符)输入字符串的长度。条纹地区是自定义搜索方法优于正则表达式。

请注意,所有测量值是近似的。

N0.2:替换转义字符

另一种常见的字符串的操作是要替换转义字符。有时替换是很容易的,你只需要设立一个反斜杠(或其他字符)在每一个转义字符的前面。

试想以下情况:你是建立一个RTF文件,你要在文件中的插入字符串。在RTF文件中"(",")"和"\"字符具有特殊的意义,因此,必须先用反斜杠。现在的问题是:什么是最快的方法,以取代相应的转义序列的每个字符?

正则表达式

1、用Regex类的Replace 法是其中一个可行办法。但是,在这种情况下,使用正则表达式是目前最慢的选择。

上一页  1 2 3 4 5 6  下一页

Tags:优化 字符串 操作

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接