次の方法で共有


String.Split メソッド (Char , Int32)

このインスタンス内で、配列内で指定された 1 つ以上の文字で区切られた部分文字列を識別し、次にこの部分文字列を String 配列に格納します。パラメータには、返される配列要素の最大数を指定します。

Overloads Public Function Split( _
   ByVal separator() As Char, _   ByVal count As Integer _) As String()
[C#]
public string[] Split(char[] separator,intcount);
[C++]
public: String* Split(__wchar_tseparator __gc[],intcount)  __gc[];
[JScript]
public function Split(
   separator : Char[],count : int) : String[];

パラメータ

  • separator
    このインスタンスでの部分文字列の区切り文字である Unicode 文字の配列、区切り文字が含まれていない空の配列、または null 参照 (Visual Basic では Nothing) 。
  • count
    返される配列要素の最大数。

戻り値

separator の文字がこのインスタンスに含まれていない場合には、このインスタンスが含まれている単一要素で構成される配列。

または

このインスタンスが separator の文字で区切られている場合は、部分文字列の配列。

または

これらの文字が出現し、 separator が null 参照 (Visual Basic では Nothing) であるか、またはこのパラメータに区切り文字が含まれていない場合は、このインスタンスの部分文字列を空白文字で区切った配列。

2 つの区切り記号が隣接している文字列が検出されるか、またはこのインスタンスの先頭または末尾で区切り記号が検出されると、 Empty が返されます。

部分文字列に区切り文字が含まれていません。

例外

例外の種類 条件
ArgumentOutOfRangeException count が負の値です。

解説

このインスタンスに複数の count 部分文字列が含まれている場合は、戻り値の 1 番目の count から 1 を引いた数の要素として、1 番目の count から 1 を引いた数の部分文字列が返されます。このインスタンスの残りの文字は、戻り値の最後の要素に返されます。

count が部分文字列の数よりも多い場合、部分文字列が返され、例外はスローされません。

次に例を示します。

入力 区切り記号、カウント 出力
"42, 12, 19" new Char[] {',', ' '}, 2 {"42", " 12, 19"}
"42..12..19" new Char[] {'.'}, 4 {"42", "", "12", ".19"}
"Banana" new Char[] {'.'}, 2 {"Banana"}
"Darb\nSmarba" new Char[] {}, 1 {"Darb\nSmarba"}
"Darb\nSmarba" new Char[] null, 2 {"Darb", "Smarba"}
"Darb\nSmarba" new Char[] null, 100 {"Darb", "Smarba"}

使用例

[Visual Basic, C#, C++] count が、 Split によって返される文字列の数に与える影響については、次のコード例を参照してください。

 
Imports System
Imports Microsoft.VisualBasic
 _

Public Class StringSplit2
   
   Public Shared Sub Main()
      
      Dim delimStr As String = " ,.:"
      Dim delimiter As Char() = delimStr.ToCharArray()
      Dim words As String = "one two,three:four."
      Dim split As String() = Nothing
      
      Console.WriteLine("The delimiters are -{0}-", delimStr)
      Dim x As Integer
      For x = 1 To 5
         split = words.Split(delimiter, x)
         Console.WriteLine(ControlChars.Cr + "count = {0,2} ..............", x)
         Dim s As String
         For Each s In  split
            Console.WriteLine("-{0}-", s)
         Next s
      Next x
   End Sub 'Main
End Class 'StringSplit2

[C#] 
using System;

public class StringSplit2 {
    public static void Main() {

        string delimStr = " ,.:";
    char [] delimiter = delimStr.ToCharArray();
        string words = "one two,three:four.";
        string [] split = null;

    Console.WriteLine("The delimiters are -{0}-", delimStr);
    for (int x = 1; x <= 5; x++) {
        split = words.Split(delimiter, x);
            Console.WriteLine("\ncount = {0,2} ..............", x);
        foreach (string s in split) {
                Console.WriteLine("-{0}-", s);
              }
    }
    }
}

[C++] 
#using <mscorlib.dll>

using namespace System;
using namespace System::Collections;

int main()
{

   String* delimStr = S" ,.:";
   Char delimiter[] = delimStr->ToCharArray();
   String* words = S"one two,three:four.";
   String* split[] = 0;

   Console::WriteLine(S"The delimiters are -{0}-", delimStr);
   for (int x = 1; x <= 5; x++) {
      split = words->Split(delimiter, x);
      Console::WriteLine(S"\ncount = {0, 2} ..............", __box(x));
      IEnumerator* myEnum = split->GetEnumerator();
      while (myEnum->MoveNext()) {
         String* s = __try_cast<String*>(myEnum->Current);
         Console::WriteLine(S"-{0}-", s);
      }
   }
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, Common Language Infrastructure (CLI) Standard

参照

String クラス | String メンバ | System 名前空間 | String.Split オーバーロードの一覧 | Char | Array | Int32 | Concat | Insert | Join | Remove | Replace | Substring | Trim