このインスタンス内の、指定された
Char 配列の要素で区切られた部分文字列を格納する
String 配列を返します。
名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)
Public Function Split ( _
ParamArray separator As Char() _
) As String()
Dim instance As String
Dim separator As Char()
Dim returnValue As String()
returnValue = instance.Split(separator)
public string[] Split (
params char[] separator
)
public:
array<String^>^ Split (
... array<wchar_t>^ separator
)
public String[] Split (
char[] separator
)
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 メソッドを使用して、文字列をトークン化する方法については、次のコード例を参照してください。
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
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);
}
}
}
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 );
}
}
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
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