最近经常看到论坛中许多帖子询问如何使用split来分割字符串我这里对split做一些简单的总结希望能够对大家有所帮助下面介绍几种方法
第一种方法打开新建一个控制台项目然后在Main()方法下输入下面的程序
string s=abcdeabcdeabcde
string[] sArray=sSplit(c)
foreach(string i in sArray)
ConsoleWriteLine(iToString())
输出下面的结果ab
deab
deab
de
我们看到了结果是以一个指定的字符进行的分割如果我们希望使用多个字符进行分割如cde如何做呢?好我们使用另一种构造方法
更改为
string s=abcdeabcdeabcde
string[] sArray=sSplit(new char[]{cde})
foreach(string i in sArray)
ConsoleWriteLine(iToString())
可以输出下面的结果ab
ab
ab
除了以上的这两种方法以外第三种方法是使用正则表达式新建一个控制台项目然后先添加 using SystemTextRegularExpressions
Main() 中更改为
SystemTextRegularExpressions
string content=agcsmallmacsmallgggsmallytx
string[]resultString=RegexSplit(contentsmallRegexOptionsIgnoreCase)
foreach(string i in resultString)
ConsoleWriteLine(iToString())
输出下面的结果agc mac ggg ytx
使用正则表达式有什么好处呢? 别着急后面我们会看到它的独特之处
下面介绍第种方法比如 string str=我*****是*****一*****个*****教*****师
如果我希望显示为我是一个教师 如何作呢?
我们可以使用下面代码 string str=我*****是*****一*****个*****教*****师
string[] strstr=strReplace(******) str=strSplit(*) foreach(string i in str) ConsoleWriteLine(iToString()) 这样也可以得到正确结果但是比如 string str=我**是*****一*****个*****教*****师
我希望显示的结果为我是一个教师
我如果采用上面的第四种方法来做就会产生下面的错误我 是一个教师 中间有空格输出所以输出结果并不是我希望的结果如何解决呢?这就又回到了正则表达式了(这里可以看到它的功能强大之处)这时可以采用下面的第五种方法 string str=我**是*****一*****个*****教*****师string[] str = SystemTextRegularExpressionsRegexSplit(str@
+) foreach(string i in str)ConsoleWriteLine(iToString())这里通过
+ 巧妙的完成了我们的目标ch(string i in str)ConsoleWriteLine(iToString());这里通过
+ 巧妙的完成了我们的目标