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

在C#中优化字符串操作

 2010-09-30 22:34:50 来源:WEB开发网   
核心提示: IsMatch方法根据pattern变量中创建一个Regex对象,然后试着匹配input字符串,在C#中优化字符串操作(2),这个过程表现地非常缓慢,正则表达式不重复使用,例如,如果你想知道输入的字符串是否包含了一组单词的,这个才非常有用,规则#3:尽可能地重复使用Regex对象如上所述

IsMatch方法根据pattern变量中创建一个Regex对象,然后试着匹配input字符串,这个过程表现地非常缓慢,正则表达式不重复使用,这个才非常有用。

规则#3:尽可能地重复使用Regex对象

如上所述,一个正则表达式对象的创建需要一段时间,你应该避免频繁创建。在某些情况下,您可以在应用程序的启动的时候初始化一切必要的正则表达式,然后多次利用他们来处理长段的文本。这将会提高性能。

规则#4:考虑使用编译的正则表达式

当创建一个正则表达式对象,如果你使用编译的选项,性能会更好。 

Regex pattern = new Regex("SomePattern", RegexOptions.Compiled);

虽然有几个缺点,编译正则表达式增加了应用程序的启动时间,造成更多的内存使用,Jeff Atwood 写了一篇文章,讨论了编译的正则表达式优势和缺点:

http://www.codinghorror.com/blog/archives/000228.html 

2、使用indexOf()方法

在一个字符串内进行搜索的时候,字符串类型IndexOf方法是非常有用的。你应该知道一些东西,来有效使用此方法。

a、尽量使用char类型

有两个IndexOf方法重载方法,第一个参数可以是一个字符或一个字符串,使用字符重载方法将快很多。如果您知道您正在搜索字符串的长度为1,请使用char类型代替。

b、一个不成功搜索所花的时间将超过一个成功的搜索:

这其实并不奇怪,如果IndexOf方法成功,它将返回给定的字符串或字符首次出现的位置,它省去了剩余字符串的搜索时间。 相反,如果输入的字符串不包含给定的字符或者字符串,IndexOf函数将对整个输入字符串进行搜索。

c、经常有一种方法来消除不成功的搜索,例如,如果你想知道输入的字符串是否包含了一组单词的,你可以先搜索那些更可能出现在输入字符串的字符。

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

Tags:优化 字符串 操作

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