クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
.NET 開発
以前のバージョン
.NET Framework SDK 2.0
System
String クラス
String メソッド
Split メソッド
 Split メソッド (Char[])

  低帯域幅での表示をオンにする
このページは次のバージョンについて記述しています。
Microsoft Visual Studio 2005/.NET Framework 2.0

その他のバージョンについては、以下の情報を参照してください。
.NET Framework クラス ライブラリ
String.Split メソッド (Char[])

このインスタンス内の、指定された Char 配列の要素で区切られた部分文字列を格納する String 配列を返します。

名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)

Visual Basic (宣言)
Public Function Split ( _
    ParamArray separator As Char() _
) As String()
Visual Basic (使用法)
Dim instance As String
Dim separator As Char()
Dim returnValue As String()

returnValue = instance.Split(separator)
C#
public string[] Split (
    params char[] separator
)
C++
public:
array<String^>^ Split (
    ... array<wchar_t>^ separator
)
J#
public String[] Split (
    char[] separator
)
JScript
public function Split (
    ... separator : char[]
) : String[]

パラメータ

separator

このインスタンスでの部分文字列の区切り文字である Unicode 文字の配列、区切り文字が含まれていない空の配列、または null 参照 (Visual Basic では Nothing)。

戻り値

このインスタンスを、separator 配列のいずれかまたは複数の要素 (文字) で区切ることによって取り出された部分文字列を格納する配列。詳細については、「解説」を参照してください。

戻り値の配列要素に区切り記号文字は含まれません。区切り記号は、序数に基づく比較を使用して検出されます。

このインスタンスに、separator に指定されたいずれの文字も含まれていなかった場合、戻り値の配列には、そのインスタンス自体を保持する要素が 1 つだけ格納されます。separator パラメータが null 参照 (Visual Basic では Nothing) の場合または文字が含まれていなかった場合、区切り記号に空白文字が指定されたものとして実行されます。

2 つの区切り記号が隣接している場合、または、区切り記号がこのインスタンスの先頭か末尾に見つかった場合、対応する配列の要素には Empty が格納されます。

次に例を示します。

入力

区切り記号

出力

"42, 12, 19"

new Char[] {',', ' '}

{"42", "", "12", "", "19"}

"42..12..19"

new Char[] {'.'}

{"42", "", "12", "", "19"}

"Banana"

new Char[] {'.'}

{"Banana"}

"Darb\nSmarba"

new Char[] {}

{"Darb", "Smarba"}

"Darb\nSmarba"

null

{"Darb", "Smarba"}

パフォーマンスに関する考慮事項

Split メソッドでは、戻り値の配列オブジェクト用と、各配列要素の String オブジェクト用にメモリが確保されます。アプリケーション開発においてメモリ割り当ての管理がきわめて重要な要件となる場合は、IndexOfAny メソッドと、(必要に応じて) Compare メソッドを使用して文字列から部分文字列を検索します。

区切り記号文字の位置で文字列を分割する場合は、IndexOfAny メソッドを使用して、文字列中の区切り記号文字を検索します。区切り記号文字の位置で文字列を分割する場合は、IndexOfAny メソッドを使用して、区切り記号文字の最初の文字を検索します。次に、Compare メソッドを使用して、最初の文字に続く文字が区切り記号文字の残りの文字に等しいかどうかを判断します。

Split メソッドを使用して、文字列をトークン化する方法については、次のコード例を参照してください。

Visual Basic
Imports System

Public Class SplitTest
    
    Public Shared Sub Main()
        Dim words As String = "this is a list of words, with: a bit of punctuation."
        Dim split As String() = words.Split(New [Char]() {" "c, ","c, "."c, ":"c})
                
        Dim s As String
        For Each s In  split
            If s.Trim() <> "" Then
                
                Console.WriteLine(s)
            End If
        Next s
    End Sub 'Main
End Class 'SplitTest
C#
using System;

public class SplitTest {
    public static void Main() {

        string words = "this is a list of words, with: a bit of punctuation.";

        string [] split = words.Split(new Char [] {' ', ',', '.', ':'});

        foreach (string s in split) {

            if (s.Trim() != "")
                Console.WriteLine(s);
        }
    }
}
C++
using namespace System;
using namespace System::Collections;
int main()
{
   String^ words = "this is a list of words, with: a bit of punctuation.";
   array<Char>^chars = {' ',',','->',':'};
   array<String^>^split = words->Split( chars );
   IEnumerator^ myEnum = split->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      String^ s = safe_cast<String^>(myEnum->Current);
      if (  !s->Trim()->Equals( "" ) )
            Console::WriteLine( s );
   }
}

J#
import System.*;

public class SplitTest
{
    public static void main(String[] args)
    {
        String words = "this is a list of words, with: a bit of punctuation.";
        String split[] = words.Split(new char[] { ' ', ',', '.', ':' });

        for (int iCtr = 0; iCtr < split.get_Length(); iCtr++) {
            String s = (String)split.get_Item(iCtr);
            if (!(s.Trim().Equals(""))) {
                Console.WriteLine(s);
            }
        }
    } //main
} //SplitTest
JScript
import System;

public class SplitTest {
    public static function Main() : void  {

        var words : String = "this is a list of words, with: a bit of punctuation.";
        var separators : char[] = [' ', ',', '.', ':'];
        var split : String [] = words.Split(separators);

        for (var i : int in split) {
            var s : String = split[i];
            if (s.Trim() != "")
                Console.WriteLine(s);
        }
    }
}
SplitTest.Main();

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。

.NET Framework

サポート対象 : 2.0、1.1、1.0

.NET Compact Framework

サポート対象 : 2.0、1.0
コミュニティ コンテンツ   コミュニティ コンテンツとは
新しいコンテンツの追加 RSS  注釈
Processing
© 2009 Microsoft Corporation. All rights reserved. 使用条件  |  商標  |  プライバシー
Page view tracker