国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

String.Split()函數

2019-11-17 03:06:22
字體:
來源:轉載
供稿:網友

String.Split()函數

C#中使用string.Split方法來分割字符串的注意事項:string.Split給我們提供了非常靈活的使用方式, 但是如果使用不當, 會造成錯誤, 最近在做code review時, 看到大部分人這么使用: string s = "A|B|:|C:D"; string[] ss = s.Split("|:|".ToCharArray()); //ss[0]: A //ss[1]: B //ss[2]: //ss[3]: //ss[4]: C //ss[5]: D其實他的本意是使用”|:|”將字符串分開的, 目標是為了得到數組: “A|B”和 “C:D”, 但是沒有直接找到Split(string)的重載, 所有就是用了ToCharArray(), 很顯然, 得到的結果是錯誤的.正確的用法為: string[] ss1 = s.Split(new[] {"|:|"}, StringSplitOptions.None); //ss1[0]: A|B //ss1[1]: C:D后一個參數, 是標志是否自動remove empty的數據. 例如: "A|B|:|C:D|:|"做分割時, 會返回三個數組, 該數組的最后一個元素是空"", 如果我們想過濾掉這些空的元素, 可以使用參數: StringSplitOptions.RemoveEmptyEntries即: string[] ss1 = s.Split(new[] {"|:|"}, StringSplitOptions.RemoveEmptyEntries); 例子: s = "A|B|:|C:D|:|"; string[] ss1 = s.Split(new[] {"|:|"}, StringSplitOptions.RemoveEmptyEntries); //ss1[0]: "A|B" //ss1[1]: "C:D" ss1 = s.Split(new[] { "|:|" }, StringSplitOptions.None); //ss1[0]: "A|B" //ss1[1]: "C:D" //ss1[2]: ""

首先我們看下String.Split 方法有6個重載函數:

1) public string[] Split(params char[] separator)2) public string[] Split(char[] separator, int count)3) public string[] Split(char[] separator, StringSplitOptions options)4) public string[] Split(string[] separator, StringSplitOptions options)5) public string[] Split(char[] separator, int count, StringSplitOptions options)6) public string[] Split(string[] separator, int count, StringSplitOptions options) 下邊我們通過一些實例來說明下怎么使用(以下string Words = "1,2.3,,4";):1. public string[] Split(params char[] separator)程序代碼 程序代碼 string[] split = words.Split(new Char[] { ',' });//返回:{"1","2.3","","4"}string[] split = words.Split(new Char[] { ',', '.' });//返回:{"1","2","3","","4"} 2. public string[] Split(char[] separator, int count)程序代碼 程序代碼 string[] split = words.Split(new Char[] { ',', '.' }, 2);//返回:{"1","2.3,,4"}string[] split = words.Split(new Char[] { ',', '.' }, 6);//返回:{"1","2","3","","4"} 3. public string[] Split(char[] separator, StringSplitOptions options)程序代碼 程序代碼 string[] split = words.Split(new Char[] { ',', '.' }, StringSplitOptions.RemoveEmptyEntries);//返回:{"1","2","3","4"} 不保留空元素string[] split = words.Split(new Char[] { ',', '.' }, StringSplitOptions.None);//返回:{"1","2","3","","4"} 保留空元素 4. public string[] Split(string[] separator, StringSplitOptions options)程序代碼 程序代碼 string[] split = words.Split(new string[] { ",", "." }, StringSplitOptions.RemoveEmptyEntries);//返回:{"1","2","3","4"} 不保留空元素string[] split = words.Split(new string[] { ",", "." }, StringSplitOptions.None);//返回:{"1","2","3","","4"} 保留空元素 5. public string[] Split(char[] separator, int count, StringSplitOptions options)程序代碼 程序代碼 string[] split = words.Split(new Char[] { ',', '.' }, 2, StringSplitOptions.RemoveEmptyEntries);//返回:{"1","2.3,,4"} 不保留空元素string[] split = words.Split(new Char[] { ',', '.' }, 6, StringSplitOptions.None);//返回:{"1","2","3","","4"} 保留空元素 6. public string[] Split(string[] separator, int count, StringSplitOptions options)程序代碼 程序代碼 string[] split = words.Split(new string[] { ",", "." }, 2, StringSplitOptions.RemoveEmptyEntries);//返回:{"1","2.3,,4"} 不保留空元素string[] split = words.Split(new string[] { ",", "." }, 6, StringSplitOptions.None);//返回:{"1","2","3","","4"} 保留空元素 個人理解:Split 就是和String.Join相反的一個函數 它的作用是把一個字符串分隔成含有多個字段的數組我現在只對上面的一種方法進行分析:string[] split = words.Split(new Char[] { ',', '.' }, 6);//返回:{"1","2","3","","4"} 為什么返回的有了個空的“” 呢,自己當時也是不理解其實它就是以" , " 和“ . " 兩個分隔符來拆分 字符串 1,2.3,,4的 當找到 3 后面的第一個”, “ 時候說明此處要分開了但是它后面又是一個分隔符 ”, " 怎么辦呢 這是就只能當成 " " 空來處理了 你可以變相的把 1,2.3,,4連續的兩個" , "間 認為有個空格符“ “也可以。不對的地方請大家幫指出來 不勝感激 。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 晋宁县| 双峰县| 明星| 绿春县| 洞口县| 西盟| 凉山| 驻马店市| 五指山市| 民权县| 巴青县| 栾城县| 始兴县| 同江市| 永福县| 新绛县| 黄山市| 西充县| 景洪市| 隆安县| 东山县| 郁南县| 绥宁县| 清原| 同德县| 雷波县| 玉山县| 朔州市| 马关县| 淄博市| 清涧县| 阜新市| 冷水江市| 合川市| 和硕县| 北宁市| 阿荣旗| 伊宁县| 海宁市| 嘉义市| 伊川县|