一、String.Split方法提供了如下6個重載函數:
名稱 | 說明 |
---|---|
String.Split (Char[]) |
返回包含此實例中的子字符串(由指定 Char 數組的元素分隔)的 String 數組。 由 .NET Compact Framework 支持。 |
String.Split (Char[], Int32) | 返回包含此實例中的子字符串(由指定 Char 數組的元素分隔)的 String 數組。參數指定返回的子字符串的最大數量。 |
String.Split (Char[], StringSplitOptions) | 返回包含此字符串中的子字符串(由指定的 Char 數組的元素分隔)的 String 數組。參數指定是否返回空數組元素。 |
String.Split (String[], StringSplitOptions) | 返回包含此字符串中的子字符串(由指定的 String 數組的元素分隔)的 String 數組。參數指定是否返回空數組元素。 |
String.Split (Char[], Int32, StringSplitOptions) | 返回包含此字符串中的子字符串(由指定的 Char 數組的元素分隔)的 String 數組。參數指定要返回子字符串的最大數量,以及是否要返回空數組元素。 |
String.Split (String[], Int32, StringSplitOptions) | 返回包含此字符串中的子字符串(由指定的 String 數組的元素分隔)的 String 數組。參數指定要返回子字符串的最大數量,以及是否要返回空數組元素。 |
以下詳細舉例說明:
1.String.Split(Char[])
string str = "aaatbbscctdd";
string []strArray = str.Split(new char[]{'t'}); 或string []strArray = str.Split('t'); //單字符切割(result : "aaa" "bbscc" "dd") 注意單引號
string []strArray = str.Split(new char[]{'t','s'}); //多字節切割(result : "aaa" "bb" "cc" "dd")
2.String.Split(Char[],Int32)
string str = "aaatbbscctdd";
string []strArray = str.Split(new char[]{'t'},2);//只切割成2份(result :"aaa" "bbscctdd") 注意單引號
3.String.Split(Char[],StringSplitOptions)
string str = "aaatbbscctddt";
string []strArray = str.Split(new char[]{'t',StringSplitOptions.RemoveEmptyEntries});//去除空元素(result :"aaa" "bbscc" "dd")
string []strArray = str.Split(new char[]{'t',StringSplitOptions.None});//保留空元素(result :"aaa" "bbscc" "dd" “”)
4.String.Split(String[],StringSplitOptions)
string str = "aaatbbscctddt";
string []strArray = str.Split(new String[]{"t",StringSplitOptions.RemoveEmptyEntries});//去除空元素(result :"aaa" "bbscc" "dd") 注意雙引號
string []strArray = str.Split(new String[]{"t",StringSplitOptions.None});//保留空元素(result :"aaa" "bbscc" "dd" “”)
5.String.Split(Char[],Int32,StringSplitOptions)
string str = "aaatbbscctddt";
string []strArray = str.Split(new char[]{'t',2,StringSplitOptions.RemoveEmptyEntries});//切割成2份且去除空元素(result :"aaa" "bbscctddt")
string []strArray = str.Split(new char[]{'t',2,StringSplitOptions.None});//切割成2份且保留空元素(result :"aaa" "bbscctddt" “”)
6.String.Split(String[],Int32,StringSplitOptions)
string str = "aaatbbscctddt";
string []strArray = str.Split(new String[]{"t",2,StringSplitOptions.RemoveEmptyEntries});//切割成2份且去除空元素(result :"aaa" "bbscctddt")
string []strArray = str.Split(new String[]{"t",2,StringSplitOptions.None});//切割成2份且保留空元素(result :"aaa" "bbscctddt" “”)
二、正則匹配拆分字符串提供了5個重載函數:
名稱 | 說明 |
---|---|
Regex.Split (String) | 在由 Regex 構造函數中指定的正則表達式模式定義的位置拆分指定的輸入字符串。 由 .NET Compact Framework 支持。 |
Regex.Split (String, Int32) | 在由 Regex 構造函數中指定的正則表達式定義的位置,將指定的輸入字符串拆分指定的最大次數。 由 .NET Compact Framework 支持。 |
Regex.Split (String, String) | 在由正則表達式模式定義的位置拆分輸入字符串。 由 .NET Compact Framework 支持。 |
Regex.Split (String, Int32, Int32) | 從輸入字符串中的指定字符位置開始,在由 Regex 構造函數中指定的正則表達式定義的位置,將指定的輸入字符串拆分指定的最大次數。 由 .NET Compact Framework 支持。 |
Regex.Split (String, String, RegexOptions) | 在由指定的正則表達式模式定義的位置拆分輸入字符串。可指定選項來修改匹配的行為。 由 .NET Compact Framework 支持。 |
using System.Text.RegularExpressions;
1.Regex.Split(String,String)
string str = "aaatsbbtscctsdd";
stirng []strArray = Regex.Split(str,"ts"); //正則匹配切割(result: "aaa" "bb" "cc" "dd");
2.Regex.Split(String,String)
string str = "aaatsbbtscctsdd";
stirng []strArray = Regex.Split(str,"ts",RegexOptions.IgnoreCase); //正則匹配切割(result: "aaa" "bb" "cc" "dd");
三、應用
1.單字符拆分
string str = "aaatbbscctdd";
string []strArray = str.Split(new char[]{'t'}); 或string []strArray = str.Split('t'); //單字符切割(result : "aaa" "bbscc" "dd")
2.多字符拆分
string str = "aaatbbscctdd";
string []strArray = str.Split(new char[]{'t','s'}); //多字節切割(result : "aaa" "bb" "cc" "dd")
3.字符串拆分
using System.Text.RegularExpressions;
string str = "aaatsbbtscctsdd";
stirng []strArray = Regex.Split(str,"ts",RegexOptions.IgnoreCase); //正則匹配切割且(result: "aaa" "bb" "cc" "dd");
或者
string str = "aaatsbbtscctsdd";
string []strArray = str.Split(new string[]{"ts"}); //字符串切割(result : "aaa" "bb" "cc" "dd")
注意:
1.String.Split方法沒有重載String.Split(stirng [])方法,也就是說str.Split("t")或者str.Split(new string[]{"ts","dd"})都是錯誤的。
2.除了切割單字符可用String.Split('t')外,其它的都必須用String.Split(new char[]{})這樣的格式,否則編譯會出錯。
using System.Text.RegularExpressions;
string str="aaajsbbbjsccc";
string[] sArray=Regex.Split(str,"js",RegexOptions.IgnoreCase);
foreach (string i in sArray) Response.Write(i.ToString() + "<br>");
輸出結果:
aaa
bbb
ccc
2、用多個字符來分隔:
string str="aaajbbbscccjdddseee";
foreach(string i in sArray) Response.Write(i.ToString() + "<br>");
輸出結果:
aaa
bbb
ccc
ddd
eee
3、用單個字符來分隔:
string str="aaajbbbjccc";
string[] sArray=str.Split('j');
foreach(string i in sArray) Response.Write(i.ToString() + "<br>");
輸出結果:
aaa
bbb
ccc
這是一個具有語法錯誤的語句,Split 的 separator 參數應該是 char[] 或 string[],不應是字符串。正確的示例:
char[] separator = { 'o' };
string[] arr = str.Split(separator);
String.Split 方法有6個重載函數:
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"}
2. public string[] Split(char[] separator, int count)
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.None);//返回:{"1","2","3","","4"} 保留空元素
4. public string[] Split(string[] separator, StringSplitOptions options)
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[] { ',', '.' }, 6, StringSplitOptions.None);//返回:{"1","2","3","","4"} 保留空元素
6. public string[] Split(string[] separator, int count, StringSplitOptions options)
string[] split = words.Split(new string[] { ",", "." }, 6, StringSplitOptions.None);//返回:{"1","2","3","","4"} 保留空元素