Split 函式 (Visual Basic)
更新:2007 年 11 月
傳回以零起始的一維陣列,其中包含指定數目的子字串。
Function Split(
ByVal Expression As String,
Optional ByVal Delimiter As String = " ",
Optional ByVal Limit As Integer = -1,
Optional ByVal Compare As CompareMethod = CompareMethod.Binary
) As String()
參數
Expression
必要項。包含子字串和分隔符號 (Delimiter) 的 String 運算式。Delimiter
選擇項。用來識別子字串範圍的任何單一字元。如果省略 Delimiter,則會將空白字元 (" ") 假設為分隔符號。Limit
選擇項。輸入字串應該分割之子字串數目的最大值。預設值為 –1,表示應該在每次遇到 Delimiter 字串時即分割輸入字串。Compare
選擇項。指示出當評估子字串時要使用哪種比對的數值。請參閱值的「設定」。
傳回
String 陣列。如果 Expression 是長度為零的字串 (""),則 Split 會傳回含有長度為零之字串的單一元素陣列。如果 Delimiter 是長度為零的字串,或者它未出現在 Expression 中的任何位置,則 Split 會傳回含有整個 Expression 字串的單一元素陣列。
設定
Compare 引數可以是下列各值。
常數 |
描述 |
值 |
---|---|---|
CompareMethod.Binary |
執行二進位比對 |
0 |
CompareMethod.Text |
執行文字比對 |
1 |
備註
在預設情況下,或 Limit 等於 -1 時,Split 函式會在每個出現分隔符號字串的地方分割輸入字串,並以陣列方式傳回子字串。Limit 參數大於零時,Split 函式會在分隔符號的第一個 Limit-1 出現的地方分割字串,並傳回內含所產生之子字串的陣列。例如,Split("a:b:c", ":") 會傳回陣列 {"a", "b", "c"},而 Split("a:b:c", ":", 2) 則會傳回陣列 {"a", "b:c"}。
當 Split 函式在一個資料列中遇到兩個分隔符號,或是在字串開頭或結尾位置遇到一個分隔符號時,都會將這些分符號解譯為空白字串 ("")。例如,Split("xx", "x") 會傳回包含三個空白字串的陣列:一個來自字串開頭與第一個 "x" 之間、一個來自兩個 "x" 字串之間,而第三個則是來自最後一個 "x" 與字串結尾之間。
這個表格會示範選擇性的 Delimiter、Limit 和 Compare 參數如何變更 Split 函式的行為。
Split 呼叫 |
傳回值 |
---|---|
Split("42, 12, 19") |
{"42," , "12," , "19"} |
Split("42, 12, 19", ", ") |
{"42", "12", "19"} |
Split("42, 12, 19", ", ", 2) |
{"42", "12, 19"} |
Split("192.168.0.1", ".") |
{"192", "168", "0", "1"} |
Split("Alice and Bob", " AND ") |
{"Alice and Bob"} |
Split("Alice and Bob", " AND ", ,CompareMethod.Text) |
{"Alice", "Bob"} |
Split("someone@example.com", "@",1) |
{"someone@example.com"} |
Split("someone@example.com", "@",2) |
{"someone", "example.com"} |
範例
下列範例會示範如何在其空格處分割字串。
Dim TestString As String = "Look at these!"
' Returns an array containing "Look", "at", and "these!".
Dim TestArray() As String = Split(TestString)
下列範例會示範如何在單列中具有多個分隔符號時分割字串,並篩選出空白字串。
Dim TestString As String = "apple pear banana "
Dim TestArray() As String = Split(TestString)
' TestArray holds {"apple", "", "", "", "pear", "banana", "", ""}
Dim LastNonEmpty As Integer = -1
For i As Integer = 0 To TestArray.Length - 1
If TestArray(i) <> "" Then
LastNonEmpty += 1
TestArray(LastNonEmpty) = TestArray(i)
End If
Next
ReDim Preserve TestArray(LastNonEmpty)
' TestArray now holds {"apple", "pear", "banana"}
需求
命名空間 (Namespace)︰Microsoft.VisualBasic
模組:Strings
組件 (Assembly):Visual Basic Runtime Library (在 Microsoft.VisualBasic.dll 中)