エクスポート (0) 印刷
すべて展開
この記事は機械翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。 詳細情報
訳文
原文

String.Split メソッド (Char[])

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

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

public string[] Split(
	params char[] separator
)

パラメーター

separator
型 : System.Char[]
このインスタンスでの部分文字列の区切り文字である Unicode 文字の配列、区切り文字が含まれていない空の配列、または null

戻り値

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

返される配列要素に区切り記号文字は含まれません。

このインスタンスに、separator に指定されたいずれの文字も含まれていない場合、返される配列には、そのインスタンス自体を保持する要素が 1 つだけ格納されます。

separator パラメーターが null の場合または文字が含まれていなかった場合、区切り記号に空白文字が指定されたものとして実行されます。 空白文字は Unicode 規格によって定義され、Char.IsWhiteSpace メソッドに渡された場合は、true を返します。

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

文字列値

区分線

返される配列

"42, 12, 19"

new Char[] {',', ' '} (C#)

Char() = {","c, " "c} (Visual Basic)

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

"42..12..19"

new Char[] {'.'} (C#)

Char() = {"."c} (Visual Basic)

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

"Banana"

new Char[] {'.'} (C#)

Char() = {"."c} (Visual Basic)

{"Banana"}

"Darb\nSmarba" (C#)

"Darb" & vbLf & "Smarba" (Visual Basic)

new Char[] {} (C#)

Char() = {} (Visual Basic)

{"Darb", "Smarba"}

"Darb\nSmarba" (C#)

"Darb" & vbLf & "Smarba" (Visual Basic)

null (C#)

Nothing (Visual Basic)

{"Darb", "Smarba"}

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

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

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

また、複数の Split メソッド呼び出しで同じ文字セットが文字列の分割に使用される場合は、配列を 1 つだけ作成して各メソッド呼び出しで参照することを検討してください。 こうすることで、各メソッド呼び出しのオーバーヘッドを大幅に低減できます。

呼び出し時の注意

.NET Framework 3.5 以前のバージョンでは、null であるか、または文字が含まれていない separatorSplit メソッドに渡された場合、このメソッドは Trim メソッドが文字列をトリムするために使用したものとは少し異なる文字セットを使用して文字列を分割します。 .NET Framework 4 では、両方のメソッドがまったく同じ Unicode 空白文字セットを使用します。

次の例では、空白文字および区切り文字を区切り記号として扱うことで、テキストのブロックから個別の単語を抽出する方法を示します。 String.Split(Char[]) メソッドの separator パラメーターに渡す文字配列は、空白文字、タブ文字、およびいくつかの一般的な区切り記号で構成されています。


using System;

public class SplitTest {
    public static void Main() {

        string words = "This is a list of words, with: a bit of punctuation" +
                       "\tand a tab character.";

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

        foreach (string s in split) {

            if (s.Trim() != "")
                Console.WriteLine(s);
        }
    }
}
// The example displays the following output to the console:
//       This
//       is
//       a
//       list
//       of
//       words
//       with
//       a
//       bit
//       of
//       punctuation
//       and
//       a
//       tab
//       character


.NET Framework

サポート対象 : 4.5.2、4.5.1、4.5、4、3.5、3.0、2.0、1.1、1.0

.NET Framework Client Profile

サポート対象 : 4、3.5 SP1

汎用性のあるクラス ライブラリ

サポート対象 : 汎用性のあるクラス ライブラリ

Windows ストア アプリ用 .NET

サポート対象 : Windows 8

Windows Phone アプリ用 .NET

サポート対象 : Windows Phone 8、Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (サーバー コア ロールはサポート対象外), Windows Server 2008 R2 (SP1 以降でサーバー コア ロールをサポート。Itanium はサポート対象外)

.NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

コミュニティの追加

追加
表示:
© 2014 Microsoft