最近經常看到論壇中許多帖子詢問如何使用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());
這裡通過[*]+ 巧妙的完成了我們的目標
From:http://tw.wingwit.com/Article/program/net/201311/13910.html