Split 関数 (Visual Basic)
更新 : 2007 年 11 月
部分文字列ごとに区切られた文字列からゼロ ベースの 1 次元配列を作成し、返します。
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
必ず指定します。部分文字列と区切り文字を含んだ文字列 (String) 式を指定します。Delimiter
省略可能です。文字列の区切りを識別する任意の文字を指定します。Delimiter を省略すると、区切り文字にスペース (" ") が使用されます。Limit
省略可能です。入力文字列を分割した部分文字列の最大数です。既定値の –1 は、Delimiter 文字列のある部分で入力文字列を分割することを示します。Compare
省略可能です。部分文字列を評価するときに使用する文字列比較のモードを表す数値を指定します。値については、設定」を参照してください。
戻り値
String 配列Expression が長さ 0 の文字列 ("") である場合、Split は長さ 0 の文字列を含む、単一要素の配列を返します。Delimiter が長さ 0 の文字列である場合、または Expression のどこにもない場合は、Split は Expression 文字列全体を含む単一要素の配列を返します。
設定
引数 Compare の設定値は次のとおりです。
定数 |
説明 |
値 |
---|---|---|
CompareMethod.Binary |
バイナリ モードで比較を行います。 |
0 |
CompareMethod.Text |
テキスト モードで比較を行います。 |
1 |
解説
既定、または Limit が -1 の場合、Split 関数はデリミタ文字列で入力文字列を分割し、部分文字列を含む配列を返します。Limit パラメータが 0 より大きい場合、Split 関数は、最初の Limit-1 のデリミタ出現箇所で文字列を分割し、分割後の部分文字列を含む配列を返します。たとえば、Split("a:b:c", ":") は配列 {"a", "b", "c"} を返し、Split("a:b:c", ":", 2) は配列 {"a", "b:c"} を返します。
1 行に 2 つのデリミタがある場合、または、文字列の冒頭や末尾にデリミタがある場合、Split 関数はこれらのデリミタが空白の文字列 ("") を囲んでいると見なします。たとえば、Split("xx", "x") は空白の文字列を 3 つ含む配列を返します。文字列の冒頭と最初の "x" の間にあるもの、2 つの "x" 文字列の間にあるもの、最後の "x" と文字列の末尾の間にあるものの 3 つです。
この表では、省略可能な 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"}
必要条件
名前空間 : Microsoft.VisualBasic
モジュール : Strings
アセンブリ : Visual Basic ランタイム ライブラリ (Microsoft.VisualBasic.dll)