日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

String.Split()函数

發布時間:2025/10/17 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 String.Split()函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:http://blog.csdn.net/zhvsby/article/details/3404721

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連續的兩個" , "間 認為有個空格符“ “也可以。不對的地方請大家幫指出來 不勝感激 。

總結

以上是生活随笔為你收集整理的String.Split()函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。