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)

参照

参照

文字列操作の概要

Join 関数 (Visual Basic)

CompareMethod 列挙型