String.Split 메서드

정의

지정된 문자열 또는 유니코드 문자 배열의 요소로 구분된 이 인스턴스의 부분 문자열이 포함된 문자열 배열을 반환합니다.Returns a string array that contains the substrings in this instance that are delimited by elements of a specified string or Unicode character array.

오버로드

Split(Char[], Int32, StringSplitOptions)

지정된 구분 문자 및 옵션(필요에 따라)에 따라 문자열을 최대 개수의 부분 문자열로 분할합니다.Splits a string into a maximum number of substrings based on specified delimiting characters and, optionally, options.

Split(Char, Int32, StringSplitOptions)

지정된 구분 문자 및 옵션(필요에 따라)에 따라 문자열을 최대 개수의 부분 문자열로 분할합니다.Splits a string into a maximum number of substrings based on a specified delimiting character and, optionally, options. 제공된 문자 구분 기호에 따라 문자열을 최대 개수의 부분 문자열로 분할하고 필요에 따라 결과에서 빈 부분 문자열을 생략합니다.Splits a string into a maximum number of substrings based on the provided character separator, optionally omitting empty substrings from the result.

Split(String[], Int32, StringSplitOptions)

지정된 구분 문자열 및 옵션(필요에 따라)에 따라 문자열을 최대 개수의 부분 문자열로 분할합니다.Splits a string into a maximum number of substrings based on specified delimiting strings and, optionally, options.

Split(String[], StringSplitOptions)

지정된 구분 문자열 및 옵션(필요에 따라)에 따라 문자열을 부분 문자열로 분할합니다.Splits a string into substrings based on a specified delimiting string and, optionally, options.

Split(String, Int32, StringSplitOptions)

지정된 구분 문자열 및 옵션(필요에 따라)에 따라 문자열을 최대 개수의 부분 문자열로 분할합니다.Splits a string into a maximum number of substrings based on a specified delimiting string and, optionally, options.

Split(Char[], StringSplitOptions)

지정된 구분 문자 및 옵션에 따라 문자열을 부분 문자열로 분할합니다.Splits a string into substrings based on specified delimiting characters and options.

Split(Char[], Int32)

지정된 구분 문자에 따라 문자열을 최대 개수의 부분 문자열로 분할합니다.Splits a string into a maximum number of substrings based on specified delimiting characters.

Split(Char, StringSplitOptions)

지정된 구분 문자 및 옵션(필요에 따라)에 따라 문자열을 부분 문자열로 분할합니다.Splits a string into substrings based on a specified delimiting character and, optionally, options.

Split(String, StringSplitOptions)

문자열을 제공된 문자열 구분 기호에 기초하는 부분 문자열로 분할합니다.Splits a string into substrings that are based on the provided string separator.

Split(Char[])

지정된 구분 문자에 따라 문자열을 부분 문자열로 분할합니다.Splits a string into substrings based on specified delimiting characters.

설명

Split 는 구분 된 문자열을 부분 문자열로 구분 하는 데 사용 됩니다.Split is used to break a delimited string into substrings. 문자 배열 또는 문자열 배열 중 하나를 사용 하 여 0 개 이상의 구분 문자 또는 문자열을 지정할 수 있습니다.You can use either a character array or a string array to specify zero or more delimiting characters or strings. 구분 문자를 지정 하지 않으면 문자열이 공백 문자로 분할 됩니다.If no delimiting characters are specified, the string is split at white-space characters.

메서드의 오버 로드를 Split 사용 하면 메서드 (메서드)에서 반환 되는 부분 문자열의 수를 제한 하 Split(Char[], Int32) 고, 결과에 빈 문자열을 포함할지 아니면 부분 문자열을 잘라낼 지를 지정 Split(Char[], StringSplitOptions) Split(String[], StringSplitOptions) 하거나 (및 메서드) 둘 다 ( Split(Char[], Int32, StringSplitOptions)Split(String[], Int32, StringSplitOptions) 메서드)를 수행할 수 있습니다.Overloads of the Split method allow you to limit the number of substrings returned by the method (the Split(Char[], Int32) method), to specify whether to include empty strings and/or trim substrings in the result (the Split(Char[], StringSplitOptions) and Split(String[], StringSplitOptions) methods), or to do both (the Split(Char[], Int32, StringSplitOptions) and Split(String[], Int32, StringSplitOptions) methods).

Split메서드는 구분 된 문자열을 부분 문자열로 분리 하는 것이 항상 가장 좋은 방법은 아닙니다.The Split method is not always the best way to break a delimited string into substrings. 구분 기호로 분리 된 문자열의 부분 문자열을 모두 추출 하지 않으려는 경우 또는 구분 문자 집합 대신 패턴을 기반으로 문자열을 구문 분석 하려는 경우 정규식 사용을 고려 하거나 문자 인덱스를 반환 하는 검색 메서드 중 하나를 메서드와 결합 합니다 Substring .If you don't want to extract all of the substrings of a delimited string, or if you want to parse a string based on a pattern instead of a set of delimiter characters, consider using regular expressions, or combine one of the search methods that returns the index of a character with the Substring method. 자세한 내용은 문자열에서 부분 문자열 추출을 참조 하세요.For more information, see Extract substrings from a string.

예제Example

다음 예제는 String.Split()의 세 가지 오버로드를 보여 줍니다.The following examples show three different overloads of String.Split(). 첫 번째 예제에서는 Split(Char[]) 오버 로드를 호출 하 고 단일 구분 기호를 전달 합니다.The first example calls the Split(Char[]) overload and passes in a single delimiter.

string s = "You win some. You lose some.";

string[] subs = s.Split(' ');

foreach (var sub in subs)
{
    Console.WriteLine($"Substring: {sub}");
}

// This example produces the following output:
//
// Substring: You
// Substring: win
// Substring: some.
// Substring: You
// Substring: lose
// Substring: some.
Dim s As String = "You win some. You lose some."
Dim subs As String() = s.Split()

For Each substring As String In subs
    Console.WriteLine($"Substring: {substring}")
Next

' This example produces the following output:
'
' Substring: You
' Substring: win
' Substring: some.
' Substring: You
' Substring: lose
' Substring: some.

여기에서 볼 수 있듯이 마침표 문자(.)가 두 부분 문자열에 포함됩니다.As you can see, the period characters (.) are included in two of the substrings. 마침표 문자를 제외하려는 경우 마침표 문자를 추가 구분 문자로 추가할 수 있습니다.If you want to exclude the period characters, you can add the period character as an additional delimiting character. 다음 예제는 이 작업을 수행하는 방법을 보여 줍니다.The next example shows how to do this.

string s = "You win some. You lose some.";

string[] subs = s.Split(' ', '.');

foreach (var sub in subs)
{
    Console.WriteLine($"Substring: {sub}");
}

// This example produces the following output:
//
// Substring: You
// Substring: win
// Substring: some
// Substring:
// Substring: You
// Substring: lose
// Substring: some
// Substring:
Dim s As String = "You win some. You lose some."
Dim subs As String() = s.Split(" "c, "."c)

For Each substring As String In subs
    Console.WriteLine($"Substring: {substring}")
Next

' This example produces the following output:
'
' Substring: You
' Substring: win
' Substring: some
' Substring:
' Substring: You
' Substring: lose
' Substring: some
' Substring:

부분 문자열에서 마침표가 사라졌지만 이제는 두 개의 빈 부분 문자열이 추가로 포함되었습니다.The periods are gone from the substrings, but now two extra empty substrings have been included. 이러한 빈 부분 문자열은 단어와 그 뒤에 오는 마침표 사이의 부분 문자열을 나타냅니다.These empty substring represent the substring between a word and the period that follows it. 결과 배열에서 빈 부분 문자열을 생략하려면 Split(Char[], StringSplitOptions) 오버로드를 호출하고 options 매개 변수의 StringSplitOptions.RemoveEmptyEntries을 지정합니다.To omit empty substrings from the resulting array, you can call the Split(Char[], StringSplitOptions) overload and specify StringSplitOptions.RemoveEmptyEntries for the options parameter.

string s = "You win some. You lose some.";
char[] separators = new char[] { ' ', '.' };

string[] subs = s.Split(separators, StringSplitOptions.RemoveEmptyEntries);

foreach (var sub in subs)
{
    Console.WriteLine($"Substring: {sub}");
}

// This example produces the following output:
//
// Substring: You
// Substring: win
// Substring: some
// Substring: You
// Substring: lose
// Substring: some
Dim s As String = "You win some. You lose some."
Dim separators As Char() = New Char() {" "c, "."c}
Dim subs As String() = s.Split(separators, StringSplitOptions.RemoveEmptyEntries)

For Each substring As String In subs
    Console.WriteLine($"Substring: {substring}")
Next

' This example produces the following output:
'
' Substring: You
' Substring: win
' Substring: some
' Substring: You
' Substring: lose
' Substring: some

의 개별 오버 로드에 대 한 섹션에는 String.Split() 추가 예가 포함 되어 있습니다.The sections for the individual overloads of String.Split() contain further examples.

Split(Char[], Int32, StringSplitOptions)

지정된 구분 문자 및 옵션(필요에 따라)에 따라 문자열을 최대 개수의 부분 문자열로 분할합니다.Splits a string into a maximum number of substrings based on specified delimiting characters and, optionally, options.

public:
 cli::array <System::String ^> ^ Split(cli::array <char> ^ separator, int count, StringSplitOptions options);
public string[] Split (char[] separator, int count, StringSplitOptions options);
public string[] Split (char[]? separator, int count, StringSplitOptions options);
[System.Runtime.InteropServices.ComVisible(false)]
public string[] Split (char[] separator, int count, StringSplitOptions options);
member this.Split : char[] * int * StringSplitOptions -> string[]
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.Split : char[] * int * StringSplitOptions -> string[]
Public Function Split (separator As Char(), count As Integer, options As StringSplitOptions) As String()

매개 변수

separator
Char[]

이 문자열의 부분 문자열을 구분하는 문자 배열, 구분 기호를 포함하지 않는 빈 배열 또는 null입니다.An array of characters that delimit the substrings in this string, an empty array that contains no delimiters, or null.

count
Int32

반환할 부분 문자열의 최대 수입니다.The maximum number of substrings to return.

options
StringSplitOptions

부분 문자열을 자르고 빈 부분 문자열을 포함할지를 지정하는 열거형 값의 비트 조합입니다.A bitwise combination of the enumeration values that specifies whether to trim substrings and include empty substrings.

반환

String[]

separator에 있는 하나 이상의 문자로 구분되는 이 문자열의 부분 문자열이 포함된 배열입니다.An array that contains the substrings in this string that are delimited by one or more characters in separator. 자세한 내용은 설명 섹션을 참조하세요.For more information, see the Remarks section.

특성

예외

count가 음수입니다.count is negative.

optionsStringSplitOptions 값 중 하나가 아닙니다.options is not one of the StringSplitOptions values.

예제

다음 예제에서는 열거형을 사용 하 여 StringSplitOptions 메서드에서 생성 된 부분 문자열을 포함 하거나 제외 합니다 Split .The following example uses the StringSplitOptions enumeration to include or exclude substrings generated by the Split method.

// This example demonstrates the String.Split(Char[], Boolean) and 
//                               String.Split(Char[], Int32, Boolean) methods
using namespace System;
void Show( array<String^>^entries )
{
   Console::WriteLine( "The return value contains these {0} elements:", entries->Length );
   System::Collections::IEnumerator^ myEnum = entries->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      String^ entry = safe_cast<String^>(myEnum->Current);
      Console::Write( "<{0}>", entry );
   }

   Console::Write( "{0}{0}", Environment::NewLine );
}

int main()
{
   String^ s = ",one,,,two,,,,,three,,";
   array<Char>^sep = gcnew array<Char>{
      ','
   };
   array<String^>^result;
   
   //
   Console::WriteLine( "The original string is \"{0}\".", s );
   Console::WriteLine( "The separation character is '{0}'.", sep[ 0 ] );
   Console::WriteLine();
   
   //
   Console::WriteLine( "Split the string and return all elements:" );
   result = s->Split( sep, StringSplitOptions::None );
   Show( result );
   
   //
   Console::WriteLine( "Split the string and return all non-empty elements:" );
   result = s->Split( sep, StringSplitOptions::RemoveEmptyEntries );
   Show( result );
   
   //
   Console::WriteLine( "Split the string and return 2 elements:" );
   result = s->Split( sep, 2, StringSplitOptions::None );
   Show( result );
   
   //
   Console::WriteLine( "Split the string and return 2 non-empty elements:" );
   result = s->Split( sep, 2, StringSplitOptions::RemoveEmptyEntries );
   Show( result );
}

/*
This example produces the following results:

The original string is ",one,,,two,,,,,three,,".
The separation character is ','.

Split the string and return all elements:
The return value contains these 12 elements:
<><one><><><two><><><><><three><><>

Split the string and return all non-empty elements:
The return value contains these 3 elements:
<one><two><three>

Split the string and return 2 elements:
The return value contains these 2 elements:
<><one,,,two,,,,,three,,>

Split the string and return 2 non-empty elements:
The return value contains these 2 elements:
<one><,,two,,,,,three,,>

*/
// This example demonstrates the String.Split() methods that use
// the StringSplitOptions enumeration.
string s1 = ",ONE,,TWO,,,THREE,,";
string s2 = "[stop]" +
            "ONE[stop][stop]" +
            "TWO[stop][stop][stop]" +
            "THREE[stop][stop]";
char[] charSeparators = new char[] { ',' };
string[] stringSeparators = new string[] { "[stop]" };
string[] result;
// ------------------------------------------------------------------------------
// Split a string delimited by characters.
// ------------------------------------------------------------------------------
Console.WriteLine("1) Split a string delimited by characters:\n");

// Display the original string and delimiter characters.
Console.WriteLine($"1a) The original string is \"{s1}\".");
Console.WriteLine($"The delimiter character is '{charSeparators[0]}'.\n");

// Split a string delimited by characters and return all elements.
Console.WriteLine("1b) Split a string delimited by characters and " +
                  "return all elements:");
result = s1.Split(charSeparators, StringSplitOptions.None);
Show(result);

// Split a string delimited by characters and return all non-empty elements.
Console.WriteLine("1c) Split a string delimited by characters and " +
                  "return all non-empty elements:");
result = s1.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries);
Show(result);

// Split the original string into the string and empty string before the
// delimiter and the remainder of the original string after the delimiter.
Console.WriteLine("1d) Split a string delimited by characters and " +
                  "return 2 elements:");
result = s1.Split(charSeparators, 2, StringSplitOptions.None);
Show(result);

// Split the original string into the string after the delimiter and the
// remainder of the original string after the delimiter.
Console.WriteLine("1e) Split a string delimited by characters and " +
                  "return 2 non-empty elements:");
result = s1.Split(charSeparators, 2, StringSplitOptions.RemoveEmptyEntries);
Show(result);

// ------------------------------------------------------------------------------
// Split a string delimited by another string.
// ------------------------------------------------------------------------------
Console.WriteLine("2) Split a string delimited by another string:\n");

// Display the original string and delimiter string.
Console.WriteLine($"2a) The original string is \"{s2}\".");
Console.WriteLine($"The delimiter string is \"{stringSeparators[0]}\".\n");

// Split a string delimited by another string and return all elements.
Console.WriteLine("2b) Split a string delimited by another string and " +
                  "return all elements:");
result = s2.Split(stringSeparators, StringSplitOptions.None);
Show(result);

// Split the original string at the delimiter and return all non-empty elements.
Console.WriteLine("2c) Split a string delimited by another string and " +
                  "return all non-empty elements:");
result = s2.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);
Show(result);

// Split the original string into the empty string before the
// delimiter and the remainder of the original string after the delimiter.
Console.WriteLine("2d) Split a string delimited by another string and " +
                  "return 2 elements:");
result = s2.Split(stringSeparators, 2, StringSplitOptions.None);
Show(result);

// Split the original string into the string after the delimiter and the
// remainder of the original string after the delimiter.
Console.WriteLine("2e) Split a string delimited by another string and " +
                  "return 2 non-empty elements:");
result = s2.Split(stringSeparators, 2, StringSplitOptions.RemoveEmptyEntries);
Show(result);

// Display the array of separated strings using a local function
void Show(string[] entries)
{
    Console.WriteLine($"The return value contains these {entries.Length} elements:");
    foreach (string entry in entries)
    {
        Console.Write($"<{entry}>");
    }
    Console.Write("\n\n");
}

/*
This example produces the following results:

1) Split a string delimited by characters:

1a) The original string is ",ONE,,TWO,,,THREE,,".
The delimiter character is ','.

1b) Split a string delimited by characters and return all elements:
The return value contains these 9 elements:
<><ONE><><TWO><><><THREE><><>

1c) Split a string delimited by characters and return all non-empty elements:
The return value contains these 3 elements:
<ONE><TWO><THREE>

1d) Split a string delimited by characters and return 2 elements:
The return value contains these 2 elements:
<><ONE,,TWO,,,THREE,,>

1e) Split a string delimited by characters and return 2 non-empty elements:
The return value contains these 2 elements:
<ONE><TWO,,,THREE,,>

2) Split a string delimited by another string:

2a) The original string is "[stop]ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]".
The delimiter string is "[stop]".

2b) Split a string delimited by another string and return all elements:
The return value contains these 9 elements:
<><ONE><><TWO><><><THREE><><>

2c) Split a string delimited by another string and return all non-empty elements:
The return value contains these 3 elements:
<ONE><TWO><THREE>

2d) Split a string delimited by another string and return 2 elements:
The return value contains these 2 elements:
<><ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]>

2e) Split a string delimited by another string and return 2 non-empty elements:
The return value contains these 2 elements:
<ONE><TWO[stop][stop][stop]THREE[stop][stop]>

*/
    Dim s1 As String = ",ONE,,TWO,,,THREE,,"
    Dim s2 As String = "[stop]" &
                       "ONE[stop][stop]" &
                       "TWO[stop][stop][stop]" &
                       "THREE[stop][stop]"
    Dim charSeparators() As Char = {","c}
    Dim stringSeparators() As String = {"[stop]"}
    Dim result() As String
    ' ------------------------------------------------------------------------------
    ' Split a string delimited by characters.
    ' ------------------------------------------------------------------------------
    Console.WriteLine("1) Split a string delimited by characters:" & vbCrLf)

    ' Display the original string and delimiter characters.
    Console.WriteLine("1a) The original string is ""{0}"".", s1)
    Console.WriteLine("The delimiter character is '{0}'." & vbCrLf, charSeparators(0))

    ' Split a string delimited by characters and return all elements.
    Console.WriteLine("1b) Split a string delimited by characters and " &
                      "return all elements:")
    result = s1.Split(charSeparators, StringSplitOptions.None)
    Show(result)

    ' Split a string delimited by characters and return all non-empty elements.
    Console.WriteLine("1c) Split a string delimited by characters and " &
                      "return all non-empty elements:")
    result = s1.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries)
    Show(result)

    ' Split the original string into the string and empty string before the 
    ' delimiter and the remainder of the original string after the delimiter.
    Console.WriteLine("1d) Split a string delimited by characters and " &
                      "return 2 elements:")
    result = s1.Split(charSeparators, 2, StringSplitOptions.None)
    Show(result)

    ' Split the original string into the string after the delimiter and the 
    ' remainder of the original string after the delimiter.
    Console.WriteLine("1e) Split a string delimited by characters and " &
                      "return 2 non-empty elements:")
    result = s1.Split(charSeparators, 2, StringSplitOptions.RemoveEmptyEntries)
    Show(result)

    ' ------------------------------------------------------------------------------
    ' Split a string delimited by another string.
    ' ------------------------------------------------------------------------------
    Console.WriteLine("2) Split a string delimited by another string:" & vbCrLf)

    ' Display the original string and delimiter string.
    Console.WriteLine("2a) The original string is ""{0}"".", s2)
    Console.WriteLine("The delimiter string is ""{0}""." & vbCrLf, stringSeparators(0))

    ' Split a string delimited by another string and return all elements.
    Console.WriteLine("2b) Split a string delimited by another string and " &
                      "return all elements:")
    result = s2.Split(stringSeparators, StringSplitOptions.None)
    Show(result)

    ' Split the original string at the delimiter and return all non-empty elements.
    Console.WriteLine("2c) Split a string delimited by another string and " &
                      "return all non-empty elements:")
    result = s2.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries)
    Show(result)

    ' Split the original string into the empty string before the 
    ' delimiter and the remainder of the original string after the delimiter.
    Console.WriteLine("2d) Split a string delimited by another string and " &
                      "return 2 elements:")
    result = s2.Split(stringSeparators, 2, StringSplitOptions.None)
    Show(result)

    ' Split the original string into the string after the delimiter and the 
    ' remainder of the original string after the delimiter.
    Console.WriteLine("2e) Split a string delimited by another string and " &
                      "return 2 non-empty elements:")
    result = s2.Split(stringSeparators, 2, StringSplitOptions.RemoveEmptyEntries)
    Show(result)

End Sub


' Display the array of separated strings.
Public Shared Sub Show(ByVal entries() As String)
    Console.WriteLine("The return value contains these {0} elements:", entries.Length)
    Dim entry As String
    For Each entry In entries
        Console.Write("<{0}>", entry)
    Next entry
    Console.Write(vbCrLf & vbCrLf)

End Sub

'This example produces the following results:
'
'1) Split a string delimited by characters:
'
'1a) The original string is ",ONE,,TWO,,,THREE,,".
'The delimiter character is ','.
'
'1b) Split a string delimited by characters and return all elements:
'The return value contains these 9 elements:
'<><ONE><><TWO><><><THREE><><>
'
'1c) Split a string delimited by characters and return all non-empty elements:
'The return value contains these 3 elements:
'<ONE><TWO><THREE>
'
'1d) Split a string delimited by characters and return 2 elements:
'The return value contains these 2 elements:
'<><ONE,,TWO,,,THREE,,>
'
'1e) Split a string delimited by characters and return 2 non-empty elements:
'The return value contains these 2 elements:
'<ONE><TWO,,,THREE,,>
'
'2) Split a string delimited by another string:
'
'2a) The original string is "[stop]ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]".
'The delimiter string is "[stop]".
'
'2b) Split a string delimited by another string and return all elements:
'The return value contains these 9 elements:
'<><ONE><><TWO><><><THREE><><>
'
'2c) Split a string delimited by another string and return all non-empty elements:
'The return value contains these 3 elements:
'<ONE><TWO><THREE>
'
'2d) Split a string delimited by another string and return 2 elements:
'The return value contains these 2 elements:
'<><ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]>
'
'2e) Split a string delimited by another string and return 2 non-empty elements:
'The return value contains these 2 elements:
'<ONE><TWO[stop][stop][stop]THREE[stop][stop]>
'

설명

구분 기호 문자는 반환 된 배열의 요소에 포함 되지 않습니다.Delimiter characters are not included in the elements of the returned array.

이 인스턴스에에 문자가 포함 되어 있지 separator 않거나 count 매개 변수가 1 이면 반환 된 배열은이 인스턴스가 포함 된 단일 요소로 구성 됩니다.If this instance does not contain any of the characters in separator, or the count parameter is 1, the returned array consists of a single element that contains this instance. separator매개 변수가 null 이거나 문자를 포함 하지 않는 경우 공백 문자는 구분 기호로 간주 됩니다.If the separator parameter is null or contains no characters, white-space characters are assumed to be the delimiters. 공백 문자는 유니코드 표준에 의해 정의 되며 Char.IsWhiteSpace 메서드에서 true 전달 되는 경우 반환 됩니다.White-space characters are defined by the Unicode standard and the Char.IsWhiteSpace method returns true if they are passed to it. 그러나 separator 이 메서드 오버 로드에 대 한 호출의 매개 변수가 인 경우 null 컴파일러 오버 로드 확인이 실패 합니다.However, if the separator parameter in the call to this method overload is null, compiler overload resolution fails. 호출 된 메서드를 명확 하 게 식별 하려면 코드가 null의 형식을 나타내야 합니다.To unambiguously identify the called method, your code must indicate the type of the null. 다음 예제에서는이 오버 로드를 명확 하 게 식별 하는 여러 가지 방법을 보여 줍니다.The following example shows several ways to unambiguously identify this overload.

string phrase = "The quick  brown fox";

_ = phrase.Split(default(char[]), 3, StringSplitOptions.RemoveEmptyEntries);

_ = phrase.Split((char[])null, 3, StringSplitOptions.RemoveEmptyEntries);

_ = phrase.Split(null as char[], 3, StringSplitOptions.RemoveEmptyEntries);
Dim phrase As String = "The quick brown fox"
Dim words() As String

words = phrase.Split(TryCast(Nothing, Char()), 3,
                       StringSplitOptions.RemoveEmptyEntries)

words = phrase.Split(New Char() {}, 3,
                     StringSplitOptions.RemoveEmptyEntries)

count매개 변수가 0 이거나 options 매개 변수가이 RemoveEmptyEntries 고이 인스턴스의 길이가 0 이면 빈 배열이 반환 됩니다.If the count parameter is zero, or the options parameter is RemoveEmptyEntries and the length of this instance is zero, an empty array is returned.

의 각 요소 separator 는 별도의 구분 기호 문자를 정의 합니다.Each element of separator defines a separate delimiter character. options매개 변수가이 None 고, 두 구분 기호가 인접 하거나,이 인스턴스의 시작 부분 또는 끝 부분에 구분 기호가 있는 경우 해당 배열 요소는를 포함 합니다 Empty .If the options parameter is None, and two delimiters are adjacent or a delimiter is found at the beginning or end of this instance, the corresponding array element contains Empty.

count이 인스턴스에 부분 문자열이 있는 경우 첫 번째 count 빼기 1 부분 문자열이 count 반환 값의 첫 번째 빼기 1 요소에 반환 되 고이 인스턴스의 나머지 문자는 반환 값의 마지막 요소에서 반환 됩니다.If there are more than count substrings in this instance, the first count minus 1 substrings are returned in the first count minus 1 elements of the return value, and the remaining characters in this instance are returned in the last element of the return value.

count가 부분 문자열의 수보다 크면 사용 가능한 부분 문자열이 반환 되 고 예외가 throw 되지 않습니다.If count is greater than the number of substrings, the available substrings are returned and no exception is thrown.

성능 고려 사항Performance considerations

Split메서드는 반환 된 배열 개체에 대해 메모리를 할당 하 고 String 각 배열 요소에 대해 개체를 할당 합니다.The Split methods allocate memory for the returned array object and a String object for each array element. 애플리케이션에 필요한 최적의 성능, 메모리 할당을 관리 하는 것이 중요 애플리케이션 사용을 고려 합니다 IndexOf 또는 IndexOfAny 메서드 및 필요에 따라는 Compare 문자열 내에서 부분 문자열을 찾을 방법입니다.If your application requires optimal performance or if managing memory allocation is critical in your application, consider using the IndexOf or IndexOfAny method, and optionally the Compare method, to locate a substring within a string.

구분 문자에서 문자열을 분할 하는 경우 또는 메서드를 사용 IndexOf IndexOfAny 하 여 문자열에서 구분 기호 문자를 찾습니다.If you are splitting a string at a separator character, use the IndexOf or IndexOfAny method to locate a separator character in the string. 구분 기호 문자열에서 문자열을 분할 하는 경우 IndexOf 또는 메서드를 사용 IndexOfAny 하 여 구분 기호 문자열의 첫 번째 문자를 찾습니다.If you are splitting a string at a separator string, use the IndexOf or IndexOfAny method to locate the first character of the separator string. 그런 다음 메서드를 사용 Compare 하 여 첫 번째 문자 뒤의 문자가 구분 기호 문자열의 나머지 문자와 같은지 여부를 확인 합니다.Then use the Compare method to determine whether the characters after that first character are equal to the remaining characters of the separator string.

또한 여러 메서드 호출에서 문자열을 분할 하는 데 동일한 문자 집합을 사용 하는 경우 Split 단일 배열을 만들고 각 메서드 호출에서 참조 하는 것이 좋습니다.In addition, if the same set of characters is used to split strings in multiple Split method calls, consider creating a single array and referencing it in each method call. 이렇게 하면 각 메서드 호출의 추가 오버 헤드가 크게 줄어듭니다.This significantly reduces the additional overhead of each method call.

호출자 참고

.NET Framework 3.5.NET Framework 3.5및 이전 버전에서 Split(Char[]) 메서드에 separator 문자를 포함 하지 않는가 전달 되는 경우이 null 메서드는 약간 다른 공백 문자 집합을 사용 Trim(Char[]) 하 여 문자열을 자르는 방법 보다 문자열을 분할 합니다.In .NET Framework 3.5.NET Framework 3.5 and earlier versions, if the Split(Char[]) method is passed a separator that is null or contains no characters, the method uses a slightly different set of white-space characters to split the string than the Trim(Char[]) method does to trim the string. .NET Framework 4부터 두 방법 모두 동일한 유니코드 공백 문자 집합을 사용 합니다.Starting with .NET Framework 4, both methods use an identical set of Unicode white-space characters.

적용 대상

Split(Char, Int32, StringSplitOptions)

지정된 구분 문자 및 옵션(필요에 따라)에 따라 문자열을 최대 개수의 부분 문자열로 분할합니다.Splits a string into a maximum number of substrings based on a specified delimiting character and, optionally, options. 제공된 문자 구분 기호에 따라 문자열을 최대 개수의 부분 문자열로 분할하고 필요에 따라 결과에서 빈 부분 문자열을 생략합니다.Splits a string into a maximum number of substrings based on the provided character separator, optionally omitting empty substrings from the result.

public string[] Split (char separator, int count, StringSplitOptions options = System.StringSplitOptions.None);
member this.Split : char * int * StringSplitOptions -> string[]
Public Function Split (separator As Char, count As Integer, Optional options As StringSplitOptions = System.StringSplitOptions.None) As String()

매개 변수

separator
Char

이 인스턴스에서 부분 문자열을 구분하는 문자입니다.A character that delimits the substrings in this instance.

count
Int32

배열에 필요한 최대 요소 수입니다.The maximum number of elements expected in the array.

options
StringSplitOptions

부분 문자열을 자르고 빈 부분 문자열을 포함할지를 지정하는 열거형 값의 비트 조합입니다.A bitwise combination of the enumeration values that specifies whether to trim substrings and include empty substrings.

반환

String[]

separator로 구분되는 이 인스턴스의 부분 문자열이 최대 count개 포함된 배열입니다.An array that contains at most count substrings from this instance that are delimited by separator.

설명

문자열이 이미 분할 된 경우 count 문자열의 끝에 도달 하지 않은 경우 반환 된 배열의 마지막 문자열에는이 인스턴스의 나머지 후행 부분 문자열이 그대로 포함 됩니다.If the string has already been split count - 1 times, but the end of the string has not been reached, then the last string in the returned array will contain this instance's remaining trailing substring, untouched.

적용 대상

Split(String[], Int32, StringSplitOptions)

지정된 구분 문자열 및 옵션(필요에 따라)에 따라 문자열을 최대 개수의 부분 문자열로 분할합니다.Splits a string into a maximum number of substrings based on specified delimiting strings and, optionally, options.

public:
 cli::array <System::String ^> ^ Split(cli::array <System::String ^> ^ separator, int count, StringSplitOptions options);
public string[] Split (string[] separator, int count, StringSplitOptions options);
public string[] Split (string[]? separator, int count, StringSplitOptions options);
[System.Runtime.InteropServices.ComVisible(false)]
public string[] Split (string[] separator, int count, StringSplitOptions options);
member this.Split : string[] * int * StringSplitOptions -> string[]
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.Split : string[] * int * StringSplitOptions -> string[]
Public Function Split (separator As String(), count As Integer, options As StringSplitOptions) As String()

매개 변수

separator
String[]

이 문자열의 부분 문자열을 구분하는 문자열, 구분 기호를 포함하지 않는 빈 배열 또는 null입니다.The strings that delimit the substrings in this string, an empty array that contains no delimiters, or null.

count
Int32

반환할 부분 문자열의 최대 수입니다.The maximum number of substrings to return.

options
StringSplitOptions

부분 문자열을 자르고 빈 부분 문자열을 포함할지를 지정하는 열거형 값의 비트 조합입니다.A bitwise combination of the enumeration values that specifies whether to trim substrings and include empty substrings.

반환

String[]

해당 요소에 separator에 있는 하나 이상의 문자열로 구분되는 이 문자열의 부분 문자열이 포함된 배열입니다.An array whose elements contain the substrings in this string that are delimited by one or more strings in separator. 자세한 내용은 설명 섹션을 참조하세요.For more information, see the Remarks section.

특성

예외

count가 음수입니다.count is negative.

optionsStringSplitOptions 값 중 하나가 아닙니다.options is not one of the StringSplitOptions values.

예제

다음 예제에서는 열거형을 사용 하 여 StringSplitOptions 메서드에서 생성 된 부분 문자열을 포함 하거나 제외 합니다 Split .The following example uses the StringSplitOptions enumeration to include or exclude substrings generated by the Split method.

// This example demonstrates the String.Split(Char[], Boolean) and 
//                               String.Split(Char[], Int32, Boolean) methods
using namespace System;
void Show( array<String^>^entries )
{
   Console::WriteLine( "The return value contains these {0} elements:", entries->Length );
   System::Collections::IEnumerator^ myEnum = entries->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      String^ entry = safe_cast<String^>(myEnum->Current);
      Console::Write( "<{0}>", entry );
   }

   Console::Write( "{0}{0}", Environment::NewLine );
}

int main()
{
   String^ s = ",one,,,two,,,,,three,,";
   array<Char>^sep = gcnew array<Char>{
      ','
   };
   array<String^>^result;
   
   //
   Console::WriteLine( "The original string is \"{0}\".", s );
   Console::WriteLine( "The separation character is '{0}'.", sep[ 0 ] );
   Console::WriteLine();
   
   //
   Console::WriteLine( "Split the string and return all elements:" );
   result = s->Split( sep, StringSplitOptions::None );
   Show( result );
   
   //
   Console::WriteLine( "Split the string and return all non-empty elements:" );
   result = s->Split( sep, StringSplitOptions::RemoveEmptyEntries );
   Show( result );
   
   //
   Console::WriteLine( "Split the string and return 2 elements:" );
   result = s->Split( sep, 2, StringSplitOptions::None );
   Show( result );
   
   //
   Console::WriteLine( "Split the string and return 2 non-empty elements:" );
   result = s->Split( sep, 2, StringSplitOptions::RemoveEmptyEntries );
   Show( result );
}

/*
This example produces the following results:

The original string is ",one,,,two,,,,,three,,".
The separation character is ','.

Split the string and return all elements:
The return value contains these 12 elements:
<><one><><><two><><><><><three><><>

Split the string and return all non-empty elements:
The return value contains these 3 elements:
<one><two><three>

Split the string and return 2 elements:
The return value contains these 2 elements:
<><one,,,two,,,,,three,,>

Split the string and return 2 non-empty elements:
The return value contains these 2 elements:
<one><,,two,,,,,three,,>

*/
// This example demonstrates the String.Split() methods that use
// the StringSplitOptions enumeration.
string s1 = ",ONE,,TWO,,,THREE,,";
string s2 = "[stop]" +
            "ONE[stop][stop]" +
            "TWO[stop][stop][stop]" +
            "THREE[stop][stop]";
char[] charSeparators = new char[] { ',' };
string[] stringSeparators = new string[] { "[stop]" };
string[] result;
// ------------------------------------------------------------------------------
// Split a string delimited by characters.
// ------------------------------------------------------------------------------
Console.WriteLine("1) Split a string delimited by characters:\n");

// Display the original string and delimiter characters.
Console.WriteLine($"1a) The original string is \"{s1}\".");
Console.WriteLine($"The delimiter character is '{charSeparators[0]}'.\n");

// Split a string delimited by characters and return all elements.
Console.WriteLine("1b) Split a string delimited by characters and " +
                  "return all elements:");
result = s1.Split(charSeparators, StringSplitOptions.None);
Show(result);

// Split a string delimited by characters and return all non-empty elements.
Console.WriteLine("1c) Split a string delimited by characters and " +
                  "return all non-empty elements:");
result = s1.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries);
Show(result);

// Split the original string into the string and empty string before the
// delimiter and the remainder of the original string after the delimiter.
Console.WriteLine("1d) Split a string delimited by characters and " +
                  "return 2 elements:");
result = s1.Split(charSeparators, 2, StringSplitOptions.None);
Show(result);

// Split the original string into the string after the delimiter and the
// remainder of the original string after the delimiter.
Console.WriteLine("1e) Split a string delimited by characters and " +
                  "return 2 non-empty elements:");
result = s1.Split(charSeparators, 2, StringSplitOptions.RemoveEmptyEntries);
Show(result);

// ------------------------------------------------------------------------------
// Split a string delimited by another string.
// ------------------------------------------------------------------------------
Console.WriteLine("2) Split a string delimited by another string:\n");

// Display the original string and delimiter string.
Console.WriteLine($"2a) The original string is \"{s2}\".");
Console.WriteLine($"The delimiter string is \"{stringSeparators[0]}\".\n");

// Split a string delimited by another string and return all elements.
Console.WriteLine("2b) Split a string delimited by another string and " +
                  "return all elements:");
result = s2.Split(stringSeparators, StringSplitOptions.None);
Show(result);

// Split the original string at the delimiter and return all non-empty elements.
Console.WriteLine("2c) Split a string delimited by another string and " +
                  "return all non-empty elements:");
result = s2.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);
Show(result);

// Split the original string into the empty string before the
// delimiter and the remainder of the original string after the delimiter.
Console.WriteLine("2d) Split a string delimited by another string and " +
                  "return 2 elements:");
result = s2.Split(stringSeparators, 2, StringSplitOptions.None);
Show(result);

// Split the original string into the string after the delimiter and the
// remainder of the original string after the delimiter.
Console.WriteLine("2e) Split a string delimited by another string and " +
                  "return 2 non-empty elements:");
result = s2.Split(stringSeparators, 2, StringSplitOptions.RemoveEmptyEntries);
Show(result);

// Display the array of separated strings using a local function
void Show(string[] entries)
{
    Console.WriteLine($"The return value contains these {entries.Length} elements:");
    foreach (string entry in entries)
    {
        Console.Write($"<{entry}>");
    }
    Console.Write("\n\n");
}

/*
This example produces the following results:

1) Split a string delimited by characters:

1a) The original string is ",ONE,,TWO,,,THREE,,".
The delimiter character is ','.

1b) Split a string delimited by characters and return all elements:
The return value contains these 9 elements:
<><ONE><><TWO><><><THREE><><>

1c) Split a string delimited by characters and return all non-empty elements:
The return value contains these 3 elements:
<ONE><TWO><THREE>

1d) Split a string delimited by characters and return 2 elements:
The return value contains these 2 elements:
<><ONE,,TWO,,,THREE,,>

1e) Split a string delimited by characters and return 2 non-empty elements:
The return value contains these 2 elements:
<ONE><TWO,,,THREE,,>

2) Split a string delimited by another string:

2a) The original string is "[stop]ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]".
The delimiter string is "[stop]".

2b) Split a string delimited by another string and return all elements:
The return value contains these 9 elements:
<><ONE><><TWO><><><THREE><><>

2c) Split a string delimited by another string and return all non-empty elements:
The return value contains these 3 elements:
<ONE><TWO><THREE>

2d) Split a string delimited by another string and return 2 elements:
The return value contains these 2 elements:
<><ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]>

2e) Split a string delimited by another string and return 2 non-empty elements:
The return value contains these 2 elements:
<ONE><TWO[stop][stop][stop]THREE[stop][stop]>

*/
    Dim s1 As String = ",ONE,,TWO,,,THREE,,"
    Dim s2 As String = "[stop]" &
                       "ONE[stop][stop]" &
                       "TWO[stop][stop][stop]" &
                       "THREE[stop][stop]"
    Dim charSeparators() As Char = {","c}
    Dim stringSeparators() As String = {"[stop]"}
    Dim result() As String
    ' ------------------------------------------------------------------------------
    ' Split a string delimited by characters.
    ' ------------------------------------------------------------------------------
    Console.WriteLine("1) Split a string delimited by characters:" & vbCrLf)

    ' Display the original string and delimiter characters.
    Console.WriteLine("1a) The original string is ""{0}"".", s1)
    Console.WriteLine("The delimiter character is '{0}'." & vbCrLf, charSeparators(0))

    ' Split a string delimited by characters and return all elements.
    Console.WriteLine("1b) Split a string delimited by characters and " &
                      "return all elements:")
    result = s1.Split(charSeparators, StringSplitOptions.None)
    Show(result)

    ' Split a string delimited by characters and return all non-empty elements.
    Console.WriteLine("1c) Split a string delimited by characters and " &
                      "return all non-empty elements:")
    result = s1.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries)
    Show(result)

    ' Split the original string into the string and empty string before the 
    ' delimiter and the remainder of the original string after the delimiter.
    Console.WriteLine("1d) Split a string delimited by characters and " &
                      "return 2 elements:")
    result = s1.Split(charSeparators, 2, StringSplitOptions.None)
    Show(result)

    ' Split the original string into the string after the delimiter and the 
    ' remainder of the original string after the delimiter.
    Console.WriteLine("1e) Split a string delimited by characters and " &
                      "return 2 non-empty elements:")
    result = s1.Split(charSeparators, 2, StringSplitOptions.RemoveEmptyEntries)
    Show(result)

    ' ------------------------------------------------------------------------------
    ' Split a string delimited by another string.
    ' ------------------------------------------------------------------------------
    Console.WriteLine("2) Split a string delimited by another string:" & vbCrLf)

    ' Display the original string and delimiter string.
    Console.WriteLine("2a) The original string is ""{0}"".", s2)
    Console.WriteLine("The delimiter string is ""{0}""." & vbCrLf, stringSeparators(0))

    ' Split a string delimited by another string and return all elements.
    Console.WriteLine("2b) Split a string delimited by another string and " &
                      "return all elements:")
    result = s2.Split(stringSeparators, StringSplitOptions.None)
    Show(result)

    ' Split the original string at the delimiter and return all non-empty elements.
    Console.WriteLine("2c) Split a string delimited by another string and " &
                      "return all non-empty elements:")
    result = s2.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries)
    Show(result)

    ' Split the original string into the empty string before the 
    ' delimiter and the remainder of the original string after the delimiter.
    Console.WriteLine("2d) Split a string delimited by another string and " &
                      "return 2 elements:")
    result = s2.Split(stringSeparators, 2, StringSplitOptions.None)
    Show(result)

    ' Split the original string into the string after the delimiter and the 
    ' remainder of the original string after the delimiter.
    Console.WriteLine("2e) Split a string delimited by another string and " &
                      "return 2 non-empty elements:")
    result = s2.Split(stringSeparators, 2, StringSplitOptions.RemoveEmptyEntries)
    Show(result)

End Sub


' Display the array of separated strings.
Public Shared Sub Show(ByVal entries() As String)
    Console.WriteLine("The return value contains these {0} elements:", entries.Length)
    Dim entry As String
    For Each entry In entries
        Console.Write("<{0}>", entry)
    Next entry
    Console.Write(vbCrLf & vbCrLf)

End Sub

'This example produces the following results:
'
'1) Split a string delimited by characters:
'
'1a) The original string is ",ONE,,TWO,,,THREE,,".
'The delimiter character is ','.
'
'1b) Split a string delimited by characters and return all elements:
'The return value contains these 9 elements:
'<><ONE><><TWO><><><THREE><><>
'
'1c) Split a string delimited by characters and return all non-empty elements:
'The return value contains these 3 elements:
'<ONE><TWO><THREE>
'
'1d) Split a string delimited by characters and return 2 elements:
'The return value contains these 2 elements:
'<><ONE,,TWO,,,THREE,,>
'
'1e) Split a string delimited by characters and return 2 non-empty elements:
'The return value contains these 2 elements:
'<ONE><TWO,,,THREE,,>
'
'2) Split a string delimited by another string:
'
'2a) The original string is "[stop]ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]".
'The delimiter string is "[stop]".
'
'2b) Split a string delimited by another string and return all elements:
'The return value contains these 9 elements:
'<><ONE><><TWO><><><THREE><><>
'
'2c) Split a string delimited by another string and return all non-empty elements:
'The return value contains these 3 elements:
'<ONE><TWO><THREE>
'
'2d) Split a string delimited by another string and return 2 elements:
'The return value contains these 2 elements:
'<><ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]>
'
'2e) Split a string delimited by another string and return 2 non-empty elements:
'The return value contains these 2 elements:
'<ONE><TWO[stop][stop][stop]THREE[stop][stop]>
'

설명

구분 기호 문자열은 반환 된 배열의 요소에 포함 되지 않습니다.Delimiter strings are not included in the elements of the returned array.

이 인스턴스에에 문자열이 포함 되어 있지 separator 않거나 count 매개 변수가 1 이면 반환 된 배열은이 인스턴스가 포함 된 단일 요소로 구성 됩니다.If this instance does not contain any of the strings in separator, or the count parameter is 1, the returned array consists of a single element that contains this instance. separator매개 변수가 null 이거나 문자를 포함 하지 않는 경우 공백 문자는 구분 기호로 간주 됩니다.If the separator parameter is null or contains no characters, white-space characters are assumed to be the delimiters. 공백 문자는 유니코드 표준에 의해 정의 되며 Char.IsWhiteSpace 메서드에서 true 전달 되는 경우 반환 됩니다.White-space characters are defined by the Unicode standard and the Char.IsWhiteSpace method returns true if they are passed to it. 그러나 separator 이 메서드 오버 로드에 대 한 호출의 매개 변수가 인 경우 null 컴파일러 오버 로드 확인이 실패 합니다.However, if the separator parameter in the call to this method overload is null, compiler overload resolution fails. 호출 된 메서드를 명확 하 게 식별 하려면 코드에서의 형식을 나타내야 합니다 null .To unambiguously identify the called method, your code must indicate the type of the null. 다음 예제에서는이 오버 로드를 명확 하 게 식별 하는 여러 가지 방법을 보여 줍니다.The following example shows several ways to unambiguously identify this overload.

string phrase = "The quick  brown fox";

_ = phrase.Split(default(string[]), 3, StringSplitOptions.RemoveEmptyEntries);

_ = phrase.Split((string[])null, 3, StringSplitOptions.RemoveEmptyEntries);

_ = phrase.Split(null as string[], 3, StringSplitOptions.RemoveEmptyEntries);
Dim phrase As String = "The quick brown fox"
Dim words() As String

words = phrase.Split(TryCast(Nothing, String()), 3,
                       StringSplitOptions.RemoveEmptyEntries)

words = phrase.Split(New String() {}, 3,
                     StringSplitOptions.RemoveEmptyEntries)

count매개 변수가 0 이거나 options 매개 변수가이 RemoveEmptyEntries 고이 인스턴스의 길이가 0 이면 빈 배열이 반환 됩니다.If the count parameter is zero, or the options parameter is RemoveEmptyEntries and the length of this instance is zero, an empty array is returned.

의 각 요소는 separator 하나 이상의 문자로 구성 된 별도의 구분 기호를 정의 합니다.Each element of separator defines a separate delimiter that consists of one or more characters. options매개 변수가이 None 고, 두 구분 기호가 인접 하거나,이 인스턴스의 시작 부분 또는 끝 부분에 구분 기호가 있는 경우 해당 배열 요소는를 포함 합니다 Empty .If the options parameter is None, and two delimiters are adjacent or a delimiter is found at the beginning or end of this instance, the corresponding array element contains Empty.

count이 인스턴스에 부분 문자열이 있는 경우 첫 번째 count 빼기 1 부분 문자열이 count 반환 값의 첫 번째 빼기 1 요소에 반환 되 고이 인스턴스의 나머지 문자는 반환 값의 마지막 요소에서 반환 됩니다.If there are more than count substrings in this instance, the first count minus 1 substrings are returned in the first count minus 1 elements of the return value, and the remaining characters in this instance are returned in the last element of the return value.

count가 부분 문자열의 수보다 크면 사용 가능한 부분 문자열이 반환 되 고 예외가 throw 되지 않습니다.If count is greater than the number of substrings, the available substrings are returned and no exception is thrown.

구분 기호 배열입니다.The separator array

의 요소가 separator 여러 문자로 구성 된 경우 전체 부분 문자열이 구분 기호로 간주 됩니다.If any of the elements in separator consists of multiple characters, the entire substring is considered a delimiter. 예를 들어의 요소 중 하나가 separator "10" 인 경우 "This10is10a10string" 문자열을 분할 하려고 시도 합니다.For example, if one of the elements in separator is "10", attempting to split the string "This10is10a10string." 이 4 개 요소 배열을 반환 합니다. {"This", "is", "a", "string"returns this four-element array: { "This", "is", "a", "string." }.}.

비교 정보Comparison details

Split메서드는 매개 변수에서 하나 이상의 문자열로 구분 되는이 문자열의 부분 문자열을 추출 separator 하 고 해당 부분 문자열을 배열의 요소로 반환 합니다.The Split method extracts the substrings in this string that are delimited by one or more of the strings in the separator parameter, and returns those substrings as elements of an array.

Split메서드는 대/소문자 구분 서 수 정렬 규칙을 사용 하 여 비교를 수행 하 여 구분 기호를 찾습니다.The Split method looks for delimiters by performing comparisons using case-sensitive ordinal sort rules. 단어, 문자열 및 서 수 정렬에 대 한 자세한 내용은 열거형을 참조 하세요 System.Globalization.CompareOptions .For more information about word, string, and ordinal sorts, see the System.Globalization.CompareOptions enumeration.

Split메서드는 separator 값이 null 이거나 빈 문자열 ("") 인의 요소를 무시 합니다.The Split method ignores any element of separator whose value is null or the empty string ("").

의 문자열에 공통 된 문자가 있는 경우 모호한 결과를 방지 하기 위해 separator Split 메서드는 인스턴스 값의 처음부터 끝까지 진행 되 고 separator 인스턴스의 구분 기호와 같은의 첫 번째 요소와 일치 합니다.To avoid ambiguous results when strings in separator have characters in common, the Split method proceeds from the beginning to the end of the value of the instance, and matches the first element in separator that is equal to a delimiter in the instance. 인스턴스에서 부분 문자열이 발생 하는 순서는의 요소 순서 보다 우선적으로 적용 됩니다 separator .The order in which substrings are encountered in the instance takes precedence over the order of elements in separator.

예를 들어 값이 "abcdef" 인 인스턴스를 생각해 보겠습니다.For example, consider an instance whose value is "abcdef". 의 첫 번째 요소가 separator "ef"이 고 두 번째 요소가 "bcde" 인 경우 split 작업의 결과는 "a" 및 "f"입니다.If the first element in separator was "ef" and the second element was "bcde", the result of the split operation would be "a" and "f". 이는 "bcde" 인스턴스의 부분 문자열이 발생 하 고 separator 부분 문자열 "f"가 발생 하기 전에의 요소와 일치 하기 때문입니다.This is because the substring in the instance, "bcde", is encountered and matches an element in separator before the substring "f" is encountered.

그러나의 첫 번째 요소가 separator "bcd"이 고 두 번째 요소가 "bc" 인 경우 분할 작업의 결과는 "a" 및 "ef"가 됩니다.However, if the first element of separator was "bcd" and the second element was "bc", the result of the split operation would be "a" and "ef". 이는 "bcd"가 separator 인스턴스의 구분 기호와 일치 하는의 첫 번째 구분 기호 이기 때문입니다.This is because "bcd" is the first delimiter in separator that matches a delimiter in the instance. 구분 기호의 순서가 반대로 바뀌어 첫 번째 요소가 "bc"이 고 두 번째 요소가 "bcd" 였으 면 결과는 "a"와 "def"가 됩니다.If the order of the separators was reversed so the first element was "bc" and the second element was "bcd", the result would be "a" and "def".

성능 고려 사항Performance considerations

Split메서드는 반환 된 배열 개체에 대해 메모리를 할당 하 고 String 각 배열 요소에 대해 개체를 할당 합니다.The Split methods allocate memory for the returned array object and a String object for each array element. 애플리케이션에 필요한 최적의 성능, 메모리 할당을 관리 하는 것이 중요 애플리케이션 사용을 고려 합니다 IndexOf 또는 IndexOfAny 메서드 및 필요에 따라는 Compare 문자열 내에서 부분 문자열을 찾을 방법입니다.If your application requires optimal performance or if managing memory allocation is critical in your application, consider using the IndexOf or IndexOfAny method, and optionally the Compare method, to locate a substring within a string.

구분 문자에서 문자열을 분할 하는 경우 또는 메서드를 사용 IndexOf IndexOfAny 하 여 문자열에서 구분 기호 문자를 찾습니다.If you are splitting a string at a separator character, use the IndexOf or IndexOfAny method to locate a separator character in the string. 구분 기호 문자열에서 문자열을 분할 하는 경우 IndexOf 또는 메서드를 사용 IndexOfAny 하 여 구분 기호 문자열의 첫 번째 문자를 찾습니다.If you are splitting a string at a separator string, use the IndexOf or IndexOfAny method to locate the first character of the separator string. 그런 다음 메서드를 사용 Compare 하 여 첫 번째 문자 뒤의 문자가 구분 기호 문자열의 나머지 문자와 같은지 여부를 확인 합니다.Then use the Compare method to determine whether the characters after that first character are equal to the remaining characters of the separator string.

또한 여러 메서드 호출에서 문자열을 분할 하는 데 동일한 문자 집합을 사용 하는 경우 Split 단일 배열을 만들고 각 메서드 호출에서 참조 하는 것이 좋습니다.In addition, if the same set of characters is used to split strings in multiple Split method calls, consider creating a single array and referencing it in each method call. 이렇게 하면 각 메서드 호출의 추가 오버 헤드가 크게 줄어듭니다.This significantly reduces the additional overhead of each method call.

호출자 참고

.NET Framework 3.5.NET Framework 3.5및 이전 버전에서 Split(Char[]) 메서드에 separator 문자를 포함 하지 않는가 전달 되는 경우이 null 메서드는 약간 다른 공백 문자 집합을 사용 Trim(Char[]) 하 여 문자열을 자르는 방법 보다 문자열을 분할 합니다.In .NET Framework 3.5.NET Framework 3.5 and earlier versions, if the Split(Char[]) method is passed a separator that is null or contains no characters, the method uses a slightly different set of white-space characters to split the string than the Trim(Char[]) method does to trim the string. .NET Framework 4부터 두 방법 모두 동일한 유니코드 공백 문자 집합을 사용 합니다.Starting with .NET Framework 4, both methods use an identical set of Unicode white-space characters.

적용 대상

Split(String[], StringSplitOptions)

지정된 구분 문자열 및 옵션(필요에 따라)에 따라 문자열을 부분 문자열로 분할합니다.Splits a string into substrings based on a specified delimiting string and, optionally, options.

public:
 cli::array <System::String ^> ^ Split(cli::array <System::String ^> ^ separator, StringSplitOptions options);
public string[] Split (string[] separator, StringSplitOptions options);
public string[] Split (string[]? separator, StringSplitOptions options);
[System.Runtime.InteropServices.ComVisible(false)]
public string[] Split (string[] separator, StringSplitOptions options);
member this.Split : string[] * StringSplitOptions -> string[]
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.Split : string[] * StringSplitOptions -> string[]
Public Function Split (separator As String(), options As StringSplitOptions) As String()

매개 변수

separator
String[]

이 문자열의 부분 문자열을 구분하는 문자열 배열, 구분 기호를 포함하지 않는 빈 배열 또는 null입니다.An array of strings that delimit the substrings in this string, an empty array that contains no delimiters, or null.

options
StringSplitOptions

부분 문자열을 자르고 빈 부분 문자열을 포함할지를 지정하는 열거형 값의 비트 조합입니다.A bitwise combination of the enumeration values that specifies whether to trim substrings and include empty substrings.

반환

String[]

해당 요소에 separator에 있는 하나 이상의 문자열로 구분되는 이 문자열의 부분 문자열이 포함된 배열입니다.An array whose elements contain the substrings in this string that are delimited by one or more strings in separator. 자세한 내용은 설명 섹션을 참조하세요.For more information, see the Remarks section.

특성

예외

optionsStringSplitOptions 값 중 하나가 아닙니다.options is not one of the StringSplitOptions values.

예제

다음 예제에서는 String.Split(String[], StringSplitOptions) options 및와 같은 매개 변수를 사용 하 여 문자열의 메서드를 호출 하 여 반환 된 배열의 차이점을 보여 줍니다 StringSplitOptions.None StringSplitOptions.RemoveEmptyEntries .The following example illustrates the difference in the arrays returned by calling a string's String.Split(String[], StringSplitOptions) method with its options parameter equal to StringSplitOptions.None and StringSplitOptions.RemoveEmptyEntries.

string source = "[stop]ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]";
string[] stringSeparators = new string[] { "[stop]" };
string[] result;

// Display the original string and delimiter string.
Console.WriteLine($"Splitting the string:\n   \"{source}\".");
Console.WriteLine();
Console.WriteLine($"Using the delimiter string:\n   \"{stringSeparators[0]}\"");
Console.WriteLine();

// Split a string delimited by another string and return all elements.
result = source.Split(stringSeparators, StringSplitOptions.None);
Console.WriteLine($"Result including all elements ({result.Length} elements):");
Console.Write("   ");
foreach (string s in result)
{
    Console.Write("'{0}' ", String.IsNullOrEmpty(s) ? "<>" : s);
}
Console.WriteLine();
Console.WriteLine();

// Split delimited by another string and return all non-empty elements.
result = source.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);
Console.WriteLine($"Result including non-empty elements ({result.Length} elements):");
Console.Write("   ");
foreach (string s in result)
{
    Console.Write("'{0}' ", String.IsNullOrEmpty(s) ? "<>" : s);
}
Console.WriteLine();

// The example displays the following output:
//    Splitting the string:
//       "[stop]ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]".
//    
//    Using the delimiter string:
//       "[stop]"
//    
//    Result including all elements (9 elements):
//       '<>' 'ONE' '<>' 'TWO' '<>' '<>' 'THREE' '<>' '<>'
//    
//    Result including non-empty elements (3 elements):
//       'ONE' 'TWO' 'THREE'
Dim source As String = "[stop]ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]"
Dim stringSeparators() As String = {"[stop]"}
Dim result() As String

' Display the original string and delimiter string.
Console.WriteLine("Splitting the string:{0}   '{1}'.", vbCrLf, source)
Console.WriteLine()
Console.WriteLine("Using the delimiter string:{0}   '{1}'.",
                vbCrLf, stringSeparators(0))
Console.WriteLine()

' Split a string delimited by another string and return all elements.
result = source.Split(stringSeparators, StringSplitOptions.None)
Console.WriteLine("Result including all elements ({0} elements):",
                result.Length)
Console.Write("   ")
For Each s As String In result
    Console.Write("'{0}' ", IIf(String.IsNullOrEmpty(s), "<>", s))
Next
Console.WriteLine()
Console.WriteLine()

' Split delimited by another string and return all non-empty elements.
result = source.Split(stringSeparators,
                    StringSplitOptions.RemoveEmptyEntries)
Console.WriteLine("Result including non-empty elements ({0} elements):",
                result.Length)
Console.Write("   ")
For Each s As String In result
    Console.Write("'{0}' ", IIf(String.IsNullOrEmpty(s), "<>", s))
Next
Console.WriteLine()

' The example displays the following output:
'    Splitting the string:
'       "[stop]ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]".
'    
'    Using the delimiter string:
'       "[stop]"
'    
'    Result including all elements (9 elements):
'       '<>' 'ONE' '<>' 'TWO' '<>' '<>' 'THREE' '<>' '<>'
'    
'    Result including non-empty elements (3 elements):
'       'ONE' 'TWO' 'THREE'

다음 예제에서는 문장 부호와 공백 문자를 포함 하는 구분 기호 배열을 정의 합니다.The following example defines an array of separators that include punctuation and white-space characters. 이 배열을의 값과 함께 메서드에 전달 하면 StringSplitOptions.RemoveEmptyEntries Split(String[], StringSplitOptions) 문자열의 개별 단어로 구성 된 배열이 반환 됩니다.Passing this array along with a value of StringSplitOptions.RemoveEmptyEntries to the Split(String[], StringSplitOptions) method returns an array that consists of the individual words from the string.

string[] separators = { ",", ".", "!", "?", ";", ":", " " };
string value = "The handsome, energetic, young dog was playing with his smaller, more lethargic litter mate.";
string[] words = value.Split(separators, StringSplitOptions.RemoveEmptyEntries);
foreach (var word in words)
    Console.WriteLine(word);

// The example displays the following output:
//       The
//       handsome
//       energetic
//       young
//       dog
//       was
//       playing
//       with
//       his
//       smaller
//       more
//       lethargic
//       litter
//       mate
    Dim separators() As String = {",", ".", "!", "?", ";", ":", " "}
    Dim value As String = "The handsome, energetic, young dog was playing with his smaller, more lethargic litter mate."
    Dim words() As String = value.Split(separators, StringSplitOptions.RemoveEmptyEntries)
    For Each word In words
        Console.WriteLine(word)
    Next
End Sub

' The example displays the following output:
'
'       The
'       handsome
'       energetic
'       young
'       dog
'       was
'       playing
'       with
'       his
'       smaller
'       more
'       lethargic
'       litter
'       mate

로 설정 된 인수를 사용 하 여 메서드를 호출 합니다 options StringSplitOptions.RemoveEmptyEntries .Note that the method is called with the options argument set to StringSplitOptions.RemoveEmptyEntries. 이렇게 하면 반환 된 배열에서 String.Empty 문장 부호와 공백 문자 사이의 빈 부분 문자열 일치 항목을 나타내는 값을 포함 하지 않습니다.This prevents the returned array from including String.Empty values that represent empty substring matches between punctuation marks and white-space characters.

설명

문자열을 알려진 문자열 집합으로 구분 하는 경우 메서드를 사용 하 여 해당 문자열을 부분 문자열로 구분할 수 있습니다 Split .When a string is delimited by a known set of strings, you can use the Split method to separate it into substrings.

구분 기호 문자열은 반환 된 배열의 요소에 포함 되지 않습니다.Delimiter strings are not included in the elements of the returned array. 예를 들어 배열에 separator "--" 문자열이 포함 되어 있고 현재 문자열 인스턴스의 값이 "aa--bb--cc" 인 경우이 메서드는 "aa", "bb" 및 "cc" 라는 세 개의 요소가 포함 된 배열을 반환 합니다.For example, if the separator array includes the string "--" and the value of the current string instance is "aa--bb--cc", the method returns an array that contains three elements: "aa", "bb", and "cc".

이 인스턴스에에 문자열이 포함 되어 있지 않으면 separator 반환 된 배열은이 인스턴스가 포함 된 단일 요소로 구성 됩니다.If this instance does not contain any of the strings in separator, the returned array consists of a single element that contains this instance.

options매개 변수가이 RemoveEmptyEntries 고이 인스턴스의 길이가 0 인 경우이 메서드는 빈 배열을 반환 합니다.If the options parameter is RemoveEmptyEntries and the length of this instance is zero, the method returns an empty array.

의 각 요소는 separator 하나 이상의 문자로 구성 된 별도의 구분 기호를 정의 합니다.Each element of separator defines a separate delimiter that consists of one or more characters. 인수가이 options None 고 두 구분 기호가 인접 하거나이 인스턴스의 시작 부분 또는 끝 부분에 구분 기호가 있는 경우 해당 배열 요소는를 포함 String.Empty 합니다.If the options argument is None, and two delimiters are adjacent or a delimiter is found at the beginning or end of this instance, the corresponding array element contains String.Empty. 예를 들어, separator "-" 및 "" 라는 두 개의 요소가 포함 된 경우 _ 문자열 인스턴스의 값은 "- _ aa- _ "이 고 인수의 값은 options 입니다 None .이 메서드는 다음과 같은 5 개의 요소로 문자열 배열을 반환 합니다.For example, if separator includes two elements, "-" and "_", the value of the string instance is "-_aa-_", and the value of the options argument is None, the method returns a sting array with the following five elements:

  1. String.Empty인덱스 0에서 "-" 부분 문자열 앞에 오는 빈 문자열을 나타내는입니다.String.Empty, which represents the empty string that precedes the "-" substring at index 0.

  2. String.Empty-인덱스 0의 "-" 부분 문자열과 인덱스 1의 "" 부분 문자열 사이에 있는 빈 문자열을 나타냅니다.String.Empty, which represents the empty string between the "-" substring at index 0 and the "" substring at index 1.

  3. "aa"."aa".

  4. String.Empty-인덱스 4에서 "-" 부분 문자열 뒤에 오는 빈 문자열을 나타냅니다.String.Empty, which represents the empty string that follows the "-" substring at index 4.

  5. String.Empty인덱스 5에서 "" 부분 문자열 뒤에 오는 빈 문자열을 나타내는입니다.String.Empty, which represents the empty string that follows the "" substring at index 5.

구분 기호 배열입니다.The separator array

의 요소가 separator 여러 문자로 구성 된 경우 전체 부분 문자열이 구분 기호로 간주 됩니다.If any of the elements in separator consists of multiple characters, the entire substring is considered a delimiter. 예를 들어의 요소 중 하나가 separator "10" 인 경우 "This10is10a10string" 문자열을 분할 하려고 시도 합니다.For example, if one of the elements in separator is "10", attempting to split the string "This10is10a10string." 다음 네 요소 배열을 반환 합니다. {"This", "is", "a", "string"returns the following four-element array: { "This", "is", "a", "string." }.}.

separator매개 변수가 null 이거나 비어 있지 않은 문자열을 포함 하는 경우 공백 문자는 구분 기호로 간주 됩니다.If the separator parameter is null or contains no non-empty strings, white-space characters are assumed to be the delimiters. 공백 문자는 유니코드 표준에 의해 정의 되며 Char.IsWhiteSpace 메서드에서 true 전달 되는 경우 반환 됩니다.White-space characters are defined by the Unicode standard and the Char.IsWhiteSpace method returns true if they are passed to it.

separator이 메서드 오버 로드에 대 한 호출의 매개 변수가 인 경우 null 컴파일러 오버 로드 확인이 실패 합니다.If the separator parameter in the call to this method overload is null, compiler overload resolution fails. 호출 된 메서드를 명확 하 게 식별 하려면 코드에서의 형식을 나타내야 합니다 null .To unambiguously identify the called method, your code must indicate the type of the null. 다음 예제에서는이 오버 로드를 명확 하 게 식별 하는 여러 가지 방법을 보여 줍니다.The following example shows several ways to unambiguously identify this overload.

string phrase = "The quick  brown fox";

_ = phrase.Split(default(string[]), StringSplitOptions.RemoveEmptyEntries);

_ = phrase.Split((string[])null, StringSplitOptions.RemoveEmptyEntries);

_ = phrase.Split(null as string[], StringSplitOptions.RemoveEmptyEntries);
Dim phrase As String = "The quick brown fox"
Dim words() As String

words = phrase.Split(TryCast(Nothing, String()),
                       StringSplitOptions.RemoveEmptyEntries)

words = phrase.Split(New String() {},
                     StringSplitOptions.RemoveEmptyEntries)

비교 정보Comparison details

Split메서드는 매개 변수에서 하나 이상의 문자열로 구분 되는이 문자열의 부분 문자열을 추출 separator 하 고 해당 부분 문자열을 배열의 요소로 반환 합니다.The Split method extracts the substrings in this string that are delimited by one or more of the strings in the separator parameter, and returns those substrings as elements of an array.

Split메서드는 대/소문자 구분 서 수 정렬 규칙을 사용 하 여 비교를 수행 하 여 구분 기호를 찾습니다.The Split method looks for delimiters by performing comparisons using case-sensitive ordinal sort rules. 단어, 문자열 및 서 수 정렬에 대 한 자세한 내용은 열거형을 참조 하세요 System.Globalization.CompareOptions .For more information about word, string, and ordinal sorts, see the System.Globalization.CompareOptions enumeration.

Split메서드는 separator 값이 null 이거나 빈 문자열 ("") 인의 요소를 무시 합니다.The Split method ignores any element of separator whose value is null or the empty string ("").

의 문자열에 공통 된 문자가 있는 경우 모호한 결과를 방지 하기 위해 separator Split 작업은 인스턴스 값의 처음부터 끝까지 진행 되 고 separator 인스턴스의 구분 기호와 같은의 첫 번째 요소와 일치 합니다.To avoid ambiguous results when strings in separator have characters in common, the Split operation proceeds from the beginning to the end of the value of the instance, and matches the first element in separator that is equal to a delimiter in the instance. 인스턴스에서 부분 문자열이 발생 하는 순서는의 요소 순서 보다 우선적으로 적용 됩니다 separator .The order in which substrings are encountered in the instance takes precedence over the order of elements in separator.

예를 들어 값이 "abcdef" 인 인스턴스를 생각해 보겠습니다.For example, consider an instance whose value is "abcdef". 의 첫 번째 요소가 separator "ef"이 고 두 번째 요소가 "bcde" 인 경우 split 작업의 결과는 "a"와 "f" 라는 두 개의 요소를 포함 하는 문자열 배열입니다.If the first element in separator was "ef" and the second element was "bcde", the result of the split operation would be a string array that contains two elements, "a" and "f". 이는 "bcde" 인스턴스의 부분 문자열이 발생 하 고 separator 부분 문자열 "f"가 발생 하기 전에의 요소와 일치 하기 때문입니다.This is because the substring in the instance, "bcde", is encountered and matches an element in separator before the substring "f" is encountered.

그러나의 첫 번째 요소가 separator "bcd"이 고 두 번째 요소가 "bc" 인 경우 split 작업의 결과는 "a"와 "ef" 라는 두 개의 요소를 포함 하는 문자열 배열입니다.However, if the first element of separator was "bcd" and the second element was "bc", the result of the split operation would be a string array that contains two elements, "a" and "ef". 이는 "bcd"가 separator 인스턴스의 구분 기호와 일치 하는의 첫 번째 구분 기호 이기 때문입니다.This is because "bcd" is the first delimiter in separator that matches a delimiter in the instance. 구분 기호의 순서가 반대로 바뀌어 첫 번째 요소가 "bc"이 고 두 번째 요소가 "bcd" 였으 면 결과는 "a"와 "def" 라는 두 개의 요소를 포함 하는 문자열 배열입니다.If the order of the separators was reversed so the first element was "bc" and the second element was "bcd", the result would be a string array that contains two elements, "a" and "def".

성능 고려 사항Performance considerations

Split메서드는 반환 된 배열 개체에 대해 메모리를 할당 하 고 String 각 배열 요소에 대해 개체를 할당 합니다.The Split methods allocate memory for the returned array object and a String object for each array element. 애플리케이션에 필요한 최적의 성능, 메모리 할당을 관리 하는 것이 중요 애플리케이션 사용을 고려 합니다 IndexOf 또는 IndexOfAny 메서드 및 필요에 따라는 Compare 문자열 내에서 부분 문자열을 찾을 방법입니다.If your application requires optimal performance or if managing memory allocation is critical in your application, consider using the IndexOf or IndexOfAny method, and optionally the Compare method, to locate a substring within a string.

구분 문자에서 문자열을 분할 하는 경우 또는 메서드를 사용 IndexOf IndexOfAny 하 여 문자열에서 구분 기호 문자를 찾습니다.If you are splitting a string at a separator character, use the IndexOf or IndexOfAny method to locate a separator character in the string. 구분 기호 문자열에서 문자열을 분할 하는 경우 IndexOf 또는 메서드를 사용 IndexOfAny 하 여 구분 기호 문자열의 첫 번째 문자를 찾습니다.If you are splitting a string at a separator string, use the IndexOf or IndexOfAny method to locate the first character of the separator string. 그런 다음 메서드를 사용 Compare 하 여 첫 번째 문자 뒤의 문자가 구분 기호 문자열의 나머지 문자와 같은지 여부를 확인 합니다.Then use the Compare method to determine whether the characters after that first character are equal to the remaining characters of the separator string.

또한 여러 메서드 호출에서 문자열을 분할 하는 데 동일한 문자 집합을 사용 하는 경우 Split 단일 배열을 만들고 각 메서드 호출에서 참조 하는 것이 좋습니다.In addition, if the same set of characters is used to split strings in multiple Split method calls, consider creating a single array and referencing it in each method call. 이렇게 하면 각 메서드 호출의 추가 오버 헤드가 크게 줄어듭니다.This significantly reduces the additional overhead of each method call.

호출자 참고

.NET Framework 3.5.NET Framework 3.5및 이전 버전에서 Split(Char[]) 메서드에 separator 문자를 포함 하지 않는가 전달 되는 경우이 null 메서드는 약간 다른 공백 문자 집합을 사용 Trim(Char[]) 하 여 문자열을 자르는 방법 보다 문자열을 분할 합니다.In .NET Framework 3.5.NET Framework 3.5 and earlier versions, if the Split(Char[]) method is passed a separator that is null or contains no characters, the method uses a slightly different set of white-space characters to split the string than the Trim(Char[]) method does to trim the string. .NET Framework 4부터 두 방법 모두 동일한 유니코드 공백 문자 집합을 사용 합니다.Starting with .NET Framework 4, both methods use an identical set of Unicode white-space characters.

적용 대상

Split(String, Int32, StringSplitOptions)

지정된 구분 문자열 및 옵션(필요에 따라)에 따라 문자열을 최대 개수의 부분 문자열로 분할합니다.Splits a string into a maximum number of substrings based on a specified delimiting string and, optionally, options.

public string[] Split (string? separator, int count, StringSplitOptions options = System.StringSplitOptions.None);
public string[] Split (string separator, int count, StringSplitOptions options = System.StringSplitOptions.None);
member this.Split : string * int * StringSplitOptions -> string[]
Public Function Split (separator As String, count As Integer, Optional options As StringSplitOptions = System.StringSplitOptions.None) As String()

매개 변수

separator
String

이 인스턴스에서 부분 문자열을 구분하는 문자열입니다.A string that delimits the substrings in this instance.

count
Int32

배열에 필요한 최대 요소 수입니다.The maximum number of elements expected in the array.

options
StringSplitOptions

부분 문자열을 자르고 빈 부분 문자열을 포함할지를 지정하는 열거형 값의 비트 조합입니다.A bitwise combination of the enumeration values that specifies whether to trim substrings and include empty substrings.

반환

String[]

separator로 구분되는 이 인스턴스의 부분 문자열이 최대 count개 포함된 배열입니다.An array that contains at most count substrings from this instance that are delimited by separator.

설명

문자열이 이미 분할 된 경우 count 문자열의 끝에 도달 하지 않은 경우 반환 된 배열의 마지막 문자열에는이 인스턴스의 나머지 후행 부분 문자열이 그대로 포함 됩니다.If the string has already been split count - 1 times, but the end of the string has not been reached, then the last string in the returned array will contain this instance's remaining trailing substring, untouched.

적용 대상

Split(Char[], StringSplitOptions)

지정된 구분 문자 및 옵션에 따라 문자열을 부분 문자열로 분할합니다.Splits a string into substrings based on specified delimiting characters and options.

public:
 cli::array <System::String ^> ^ Split(cli::array <char> ^ separator, StringSplitOptions options);
public string[] Split (char[] separator, StringSplitOptions options);
public string[] Split (char[]? separator, StringSplitOptions options);
[System.Runtime.InteropServices.ComVisible(false)]
public string[] Split (char[] separator, StringSplitOptions options);
member this.Split : char[] * StringSplitOptions -> string[]
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.Split : char[] * StringSplitOptions -> string[]
Public Function Split (separator As Char(), options As StringSplitOptions) As String()

매개 변수

separator
Char[]

이 문자열의 부분 문자열을 구분하는 문자 배열, 구분 기호를 포함하지 않는 빈 배열 또는 null입니다.An array of characters that delimit the substrings in this string, an empty array that contains no delimiters, or null.

options
StringSplitOptions

부분 문자열을 자르고 빈 부분 문자열을 포함할지를 지정하는 열거형 값의 비트 조합입니다.A bitwise combination of the enumeration values that specifies whether to trim substrings and include empty substrings.

반환

String[]

해당 요소에 separator에 있는 하나 이상의 문자로 구분되는 이 문자열의 부분 문자열이 포함된 배열입니다.An array whose elements contain the substrings in this string that are delimited by one or more characters in separator. 자세한 내용은 설명 섹션을 참조하세요.For more information, see the Remarks section.

특성

예외

optionsStringSplitOptions 값 중 하나가 아닙니다.options is not one of the StringSplitOptions values.

예제

다음 예제에서는 열거형을 사용 하 여 StringSplitOptions 메서드에서 생성 된 부분 문자열을 포함 하거나 제외 합니다 Split .The following example uses the StringSplitOptions enumeration to include or exclude substrings generated by the Split method.

// This example demonstrates the String.Split(Char[], Boolean) and 
//                               String.Split(Char[], Int32, Boolean) methods
using namespace System;
void Show( array<String^>^entries )
{
   Console::WriteLine( "The return value contains these {0} elements:", entries->Length );
   System::Collections::IEnumerator^ myEnum = entries->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      String^ entry = safe_cast<String^>(myEnum->Current);
      Console::Write( "<{0}>", entry );
   }

   Console::Write( "{0}{0}", Environment::NewLine );
}

int main()
{
   String^ s = ",one,,,two,,,,,three,,";
   array<Char>^sep = gcnew array<Char>{
      ','
   };
   array<String^>^result;
   
   //
   Console::WriteLine( "The original string is \"{0}\".", s );
   Console::WriteLine( "The separation character is '{0}'.", sep[ 0 ] );
   Console::WriteLine();
   
   //
   Console::WriteLine( "Split the string and return all elements:" );
   result = s->Split( sep, StringSplitOptions::None );
   Show( result );
   
   //
   Console::WriteLine( "Split the string and return all non-empty elements:" );
   result = s->Split( sep, StringSplitOptions::RemoveEmptyEntries );
   Show( result );
   
   //
   Console::WriteLine( "Split the string and return 2 elements:" );
   result = s->Split( sep, 2, StringSplitOptions::None );
   Show( result );
   
   //
   Console::WriteLine( "Split the string and return 2 non-empty elements:" );
   result = s->Split( sep, 2, StringSplitOptions::RemoveEmptyEntries );
   Show( result );
}

/*
This example produces the following results:

The original string is ",one,,,two,,,,,three,,".
The separation character is ','.

Split the string and return all elements:
The return value contains these 12 elements:
<><one><><><two><><><><><three><><>

Split the string and return all non-empty elements:
The return value contains these 3 elements:
<one><two><three>

Split the string and return 2 elements:
The return value contains these 2 elements:
<><one,,,two,,,,,three,,>

Split the string and return 2 non-empty elements:
The return value contains these 2 elements:
<one><,,two,,,,,three,,>

*/
// This example demonstrates the String.Split() methods that use
// the StringSplitOptions enumeration.
string s1 = ",ONE,,TWO,,,THREE,,";
string s2 = "[stop]" +
            "ONE[stop][stop]" +
            "TWO[stop][stop][stop]" +
            "THREE[stop][stop]";
char[] charSeparators = new char[] { ',' };
string[] stringSeparators = new string[] { "[stop]" };
string[] result;
// ------------------------------------------------------------------------------
// Split a string delimited by characters.
// ------------------------------------------------------------------------------
Console.WriteLine("1) Split a string delimited by characters:\n");

// Display the original string and delimiter characters.
Console.WriteLine($"1a) The original string is \"{s1}\".");
Console.WriteLine($"The delimiter character is '{charSeparators[0]}'.\n");

// Split a string delimited by characters and return all elements.
Console.WriteLine("1b) Split a string delimited by characters and " +
                  "return all elements:");
result = s1.Split(charSeparators, StringSplitOptions.None);
Show(result);

// Split a string delimited by characters and return all non-empty elements.
Console.WriteLine("1c) Split a string delimited by characters and " +
                  "return all non-empty elements:");
result = s1.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries);
Show(result);

// Split the original string into the string and empty string before the
// delimiter and the remainder of the original string after the delimiter.
Console.WriteLine("1d) Split a string delimited by characters and " +
                  "return 2 elements:");
result = s1.Split(charSeparators, 2, StringSplitOptions.None);
Show(result);

// Split the original string into the string after the delimiter and the
// remainder of the original string after the delimiter.
Console.WriteLine("1e) Split a string delimited by characters and " +
                  "return 2 non-empty elements:");
result = s1.Split(charSeparators, 2, StringSplitOptions.RemoveEmptyEntries);
Show(result);

// ------------------------------------------------------------------------------
// Split a string delimited by another string.
// ------------------------------------------------------------------------------
Console.WriteLine("2) Split a string delimited by another string:\n");

// Display the original string and delimiter string.
Console.WriteLine($"2a) The original string is \"{s2}\".");
Console.WriteLine($"The delimiter string is \"{stringSeparators[0]}\".\n");

// Split a string delimited by another string and return all elements.
Console.WriteLine("2b) Split a string delimited by another string and " +
                  "return all elements:");
result = s2.Split(stringSeparators, StringSplitOptions.None);
Show(result);

// Split the original string at the delimiter and return all non-empty elements.
Console.WriteLine("2c) Split a string delimited by another string and " +
                  "return all non-empty elements:");
result = s2.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);
Show(result);

// Split the original string into the empty string before the
// delimiter and the remainder of the original string after the delimiter.
Console.WriteLine("2d) Split a string delimited by another string and " +
                  "return 2 elements:");
result = s2.Split(stringSeparators, 2, StringSplitOptions.None);
Show(result);

// Split the original string into the string after the delimiter and the
// remainder of the original string after the delimiter.
Console.WriteLine("2e) Split a string delimited by another string and " +
                  "return 2 non-empty elements:");
result = s2.Split(stringSeparators, 2, StringSplitOptions.RemoveEmptyEntries);
Show(result);

// Display the array of separated strings using a local function
void Show(string[] entries)
{
    Console.WriteLine($"The return value contains these {entries.Length} elements:");
    foreach (string entry in entries)
    {
        Console.Write($"<{entry}>");
    }
    Console.Write("\n\n");
}

/*
This example produces the following results:

1) Split a string delimited by characters:

1a) The original string is ",ONE,,TWO,,,THREE,,".
The delimiter character is ','.

1b) Split a string delimited by characters and return all elements:
The return value contains these 9 elements:
<><ONE><><TWO><><><THREE><><>

1c) Split a string delimited by characters and return all non-empty elements:
The return value contains these 3 elements:
<ONE><TWO><THREE>

1d) Split a string delimited by characters and return 2 elements:
The return value contains these 2 elements:
<><ONE,,TWO,,,THREE,,>

1e) Split a string delimited by characters and return 2 non-empty elements:
The return value contains these 2 elements:
<ONE><TWO,,,THREE,,>

2) Split a string delimited by another string:

2a) The original string is "[stop]ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]".
The delimiter string is "[stop]".

2b) Split a string delimited by another string and return all elements:
The return value contains these 9 elements:
<><ONE><><TWO><><><THREE><><>

2c) Split a string delimited by another string and return all non-empty elements:
The return value contains these 3 elements:
<ONE><TWO><THREE>

2d) Split a string delimited by another string and return 2 elements:
The return value contains these 2 elements:
<><ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]>

2e) Split a string delimited by another string and return 2 non-empty elements:
The return value contains these 2 elements:
<ONE><TWO[stop][stop][stop]THREE[stop][stop]>

*/
    Dim s1 As String = ",ONE,,TWO,,,THREE,,"
    Dim s2 As String = "[stop]" &
                       "ONE[stop][stop]" &
                       "TWO[stop][stop][stop]" &
                       "THREE[stop][stop]"
    Dim charSeparators() As Char = {","c}
    Dim stringSeparators() As String = {"[stop]"}
    Dim result() As String
    ' ------------------------------------------------------------------------------
    ' Split a string delimited by characters.
    ' ------------------------------------------------------------------------------
    Console.WriteLine("1) Split a string delimited by characters:" & vbCrLf)

    ' Display the original string and delimiter characters.
    Console.WriteLine("1a) The original string is ""{0}"".", s1)
    Console.WriteLine("The delimiter character is '{0}'." & vbCrLf, charSeparators(0))

    ' Split a string delimited by characters and return all elements.
    Console.WriteLine("1b) Split a string delimited by characters and " &
                      "return all elements:")
    result = s1.Split(charSeparators, StringSplitOptions.None)
    Show(result)

    ' Split a string delimited by characters and return all non-empty elements.
    Console.WriteLine("1c) Split a string delimited by characters and " &
                      "return all non-empty elements:")
    result = s1.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries)
    Show(result)

    ' Split the original string into the string and empty string before the 
    ' delimiter and the remainder of the original string after the delimiter.
    Console.WriteLine("1d) Split a string delimited by characters and " &
                      "return 2 elements:")
    result = s1.Split(charSeparators, 2, StringSplitOptions.None)
    Show(result)

    ' Split the original string into the string after the delimiter and the 
    ' remainder of the original string after the delimiter.
    Console.WriteLine("1e) Split a string delimited by characters and " &
                      "return 2 non-empty elements:")
    result = s1.Split(charSeparators, 2, StringSplitOptions.RemoveEmptyEntries)
    Show(result)

    ' ------------------------------------------------------------------------------
    ' Split a string delimited by another string.
    ' ------------------------------------------------------------------------------
    Console.WriteLine("2) Split a string delimited by another string:" & vbCrLf)

    ' Display the original string and delimiter string.
    Console.WriteLine("2a) The original string is ""{0}"".", s2)
    Console.WriteLine("The delimiter string is ""{0}""." & vbCrLf, stringSeparators(0))

    ' Split a string delimited by another string and return all elements.
    Console.WriteLine("2b) Split a string delimited by another string and " &
                      "return all elements:")
    result = s2.Split(stringSeparators, StringSplitOptions.None)
    Show(result)

    ' Split the original string at the delimiter and return all non-empty elements.
    Console.WriteLine("2c) Split a string delimited by another string and " &
                      "return all non-empty elements:")
    result = s2.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries)
    Show(result)

    ' Split the original string into the empty string before the 
    ' delimiter and the remainder of the original string after the delimiter.
    Console.WriteLine("2d) Split a string delimited by another string and " &
                      "return 2 elements:")
    result = s2.Split(stringSeparators, 2, StringSplitOptions.None)
    Show(result)

    ' Split the original string into the string after the delimiter and the 
    ' remainder of the original string after the delimiter.
    Console.WriteLine("2e) Split a string delimited by another string and " &
                      "return 2 non-empty elements:")
    result = s2.Split(stringSeparators, 2, StringSplitOptions.RemoveEmptyEntries)
    Show(result)

End Sub


' Display the array of separated strings.
Public Shared Sub Show(ByVal entries() As String)
    Console.WriteLine("The return value contains these {0} elements:", entries.Length)
    Dim entry As String
    For Each entry In entries
        Console.Write("<{0}>", entry)
    Next entry
    Console.Write(vbCrLf & vbCrLf)

End Sub

'This example produces the following results:
'
'1) Split a string delimited by characters:
'
'1a) The original string is ",ONE,,TWO,,,THREE,,".
'The delimiter character is ','.
'
'1b) Split a string delimited by characters and return all elements:
'The return value contains these 9 elements:
'<><ONE><><TWO><><><THREE><><>
'
'1c) Split a string delimited by characters and return all non-empty elements:
'The return value contains these 3 elements:
'<ONE><TWO><THREE>
'
'1d) Split a string delimited by characters and return 2 elements:
'The return value contains these 2 elements:
'<><ONE,,TWO,,,THREE,,>
'
'1e) Split a string delimited by characters and return 2 non-empty elements:
'The return value contains these 2 elements:
'<ONE><TWO,,,THREE,,>
'
'2) Split a string delimited by another string:
'
'2a) The original string is "[stop]ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]".
'The delimiter string is "[stop]".
'
'2b) Split a string delimited by another string and return all elements:
'The return value contains these 9 elements:
'<><ONE><><TWO><><><THREE><><>
'
'2c) Split a string delimited by another string and return all non-empty elements:
'The return value contains these 3 elements:
'<ONE><TWO><THREE>
'
'2d) Split a string delimited by another string and return 2 elements:
'The return value contains these 2 elements:
'<><ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]>
'
'2e) Split a string delimited by another string and return 2 non-empty elements:
'The return value contains these 2 elements:
'<ONE><TWO[stop][stop][stop]THREE[stop][stop]>
'

설명

구분 기호 문자 ( separator 배열의 문자)는 반환 된 배열의 요소에 포함 되지 않습니다.Delimiter characters (the characters in the separator array) are not included in the elements of the returned array. 예를 들어 배열에 separator "-" 문자가 포함 되 고 현재 문자열 인스턴스의 값이 "aa-bb-cc" 인 경우이 메서드는 "aa", "bb" 및 "cc"의 세 요소가 포함 된 배열을 반환 합니다.For example, if the separator array includes the character "-" and the value of the current string instance is "aa-bb-cc", the method returns an array that contains three elements: "aa", "bb", and "cc".

이 인스턴스에에 문자가 포함 되어 있지 않으면 separator 반환 된 배열은이 인스턴스가 포함 된 단일 요소로 구성 됩니다.If this instance does not contain any of the characters in separator, the returned array consists of a single element that contains this instance.

options매개 변수가이 RemoveEmptyEntries 고이 인스턴스의 길이가 0 인 경우이 메서드는 빈 배열을 반환 합니다.If the options parameter is RemoveEmptyEntries and the length of this instance is zero, the method returns an empty array.

의 각 요소는 separator 단일 문자로 구성 된 별도의 구분 기호를 정의 합니다.Each element of separator defines a separate delimiter that consists of a single character. 인수가이 options None 고 두 구분 기호가 인접 하거나이 인스턴스의 시작 부분 또는 끝 부분에 구분 기호가 있는 경우 해당 배열 요소는를 포함 String.Empty 합니다.If the options argument is None, and two delimiters are adjacent or a delimiter is found at the beginning or end of this instance, the corresponding array element contains String.Empty. 예를 들어, separator "-" 및 "" 라는 두 개의 요소가 포함 된 경우 _ 문자열 인스턴스의 값은 "- _ aa- _ "이 고 인수의 값은 options 입니다 None .이 메서드는 다음 5 개 요소를 포함 하는 문자열 배열을 반환 합니다.For example, if separator includes two elements, "-" and "_", the value of the string instance is "-_aa-_", and the value of the options argument is None, the method returns a string array with the following five elements:

  1. String.Empty인덱스 0에서 "-" 문자 앞에 오는 빈 문자열을 나타내는입니다.String.Empty, which represents the empty string that precedes the "-" character at index 0.

  2. String.Empty-인덱스 0의 "-" 문자와 인덱스 1의 "" 문자 사이에 있는 빈 문자열을 나타냅니다.String.Empty, which represents the empty string between the "-" character at index 0 and the "" character at index 1.

  3. "aa"."aa".

  4. String.Empty-인덱스 4에서 "-" 문자 뒤에 오는 빈 문자열을 나타냅니다.String.Empty, which represents the empty string that follows the "-" character at index 4.

  5. String.Empty인덱스 5에서 "" 문자 뒤에 오는 빈 문자열을 나타내는입니다.String.Empty, which represents the empty string that follows the "" character at index 5.

구분 기호 배열입니다.The separator array

separator매개 변수가 null 이거나 문자를 포함 하지 않는 경우 공백 문자는 구분 기호로 간주 됩니다.If the separator parameter is null or contains no characters, white-space characters are assumed to be the delimiters. 공백 문자는 유니코드 표준에 의해 정의 되며 Char.IsWhiteSpace 메서드에서 true 전달 되는 경우 반환 됩니다.White-space characters are defined by the Unicode standard and the Char.IsWhiteSpace method returns true if they are passed to it.

separator매개 변수가 이면 null 컴파일러 오버 로드 확인이 실패 합니다.If the separator parameter is null, compiler overload resolution fails. 호출 된 메서드를 명확 하 게 식별 하려면 코드에서의 형식을 나타내야 합니다 null .To unambiguously identify the called method, your code must indicate the type of the null. 다음 예제에서는이 오버 로드를 명확 하 게 식별 하는 여러 가지 방법을 보여 줍니다.The following example shows several ways to unambiguously identify this overload.

string phrase = "The quick  brown fox";

_ = phrase.Split(default(char[]), StringSplitOptions.RemoveEmptyEntries);

_ = phrase.Split((char[])null, StringSplitOptions.RemoveEmptyEntries);

_ = phrase.Split(null as char[], StringSplitOptions.RemoveEmptyEntries);
Dim phrase As String = "The quick brown fox"
Dim words() As String

words = phrase.Split(TryCast(Nothing, Char()),
                       StringSplitOptions.RemoveEmptyEntries)

words = phrase.Split(New Char() {},
                     StringSplitOptions.RemoveEmptyEntries)

비교 정보Comparison details

Split메서드는 매개 변수에서 하나 이상의 문자로 구분 되는이 문자열의 부분 문자열을 추출 separator 하 고 해당 부분 문자열을 배열의 요소로 반환 합니다.The Split method extracts the substrings in this string that are delimited by one or more of the characters in the separator parameter, and returns those substrings as elements of an array.

Split메서드는 대/소문자 구분 서 수 정렬 규칙을 사용 하 여 비교를 수행 하 여 구분 기호를 찾습니다.The Split method looks for delimiters by performing comparisons using case-sensitive ordinal sort rules. 단어, 문자열 및 서 수 정렬에 대 한 자세한 내용은 열거형을 참조 하세요 System.Globalization.CompareOptions .For more information about word, string, and ordinal sorts, see the System.Globalization.CompareOptions enumeration.

성능 고려 사항Performance considerations

Split메서드는 반환 된 배열 개체에 대해 메모리를 할당 하 고 String 각 배열 요소에 대해 개체를 할당 합니다.The Split methods allocate memory for the returned array object and a String object for each array element. 애플리케이션에 필요한 최적의 성능, 메모리 할당을 관리 하는 것이 중요 애플리케이션 사용을 고려 합니다 IndexOf 또는 IndexOfAny 메서드 및 필요에 따라는 Compare 문자열 내에서 부분 문자열을 찾을 방법입니다.If your application requires optimal performance or if managing memory allocation is critical in your application, consider using the IndexOf or IndexOfAny method, and optionally the Compare method, to locate a substring within a string.

구분 문자에서 문자열을 분할 하는 경우 또는 메서드를 사용 IndexOf IndexOfAny 하 여 문자열에서 구분 기호 문자를 찾습니다.If you are splitting a string at a separator character, use the IndexOf or IndexOfAny method to locate a separator character in the string. 구분 기호 문자열에서 문자열을 분할 하는 경우 IndexOf 또는 메서드를 사용 IndexOfAny 하 여 구분 기호 문자열의 첫 번째 문자를 찾습니다.If you are splitting a string at a separator string, use the IndexOf or IndexOfAny method to locate the first character of the separator string. 그런 다음 메서드를 사용 Compare 하 여 첫 번째 문자 뒤의 문자가 구분 기호 문자열의 나머지 문자와 같은지 여부를 확인 합니다.Then use the Compare method to determine whether the characters after that first character are equal to the remaining characters of the separator string.

또한 여러 메서드 호출에서 문자열을 분할 하는 데 동일한 문자 집합을 사용 하는 경우 Split 단일 배열을 만들고 각 메서드 호출에서 참조 하는 것이 좋습니다.In addition, if the same set of characters is used to split strings in multiple Split method calls, consider creating a single array and referencing it in each method call. 이렇게 하면 각 메서드 호출의 추가 오버 헤드가 크게 줄어듭니다.This significantly reduces the additional overhead of each method call.

호출자 참고

.NET Framework 3.5.NET Framework 3.5및 이전 버전에서 Split(Char[]) 메서드에 separator 문자를 포함 하지 않는가 전달 되는 경우이 null 메서드는 약간 다른 공백 문자 집합을 사용 Trim(Char[]) 하 여 문자열을 자르는 방법 보다 문자열을 분할 합니다.In .NET Framework 3.5.NET Framework 3.5 and earlier versions, if the Split(Char[]) method is passed a separator that is null or contains no characters, the method uses a slightly different set of white-space characters to split the string than the Trim(Char[]) method does to trim the string. .NET Framework 4부터 두 방법 모두 동일한 유니코드 공백 문자 집합을 사용 합니다.Starting with .NET Framework 4, both methods use an identical set of Unicode white-space characters.

적용 대상

Split(Char[], Int32)

지정된 구분 문자에 따라 문자열을 최대 개수의 부분 문자열로 분할합니다.Splits a string into a maximum number of substrings based on specified delimiting characters.

public:
 cli::array <System::String ^> ^ Split(cli::array <char> ^ separator, int count);
public string[] Split (char[] separator, int count);
public string[] Split (char[]? separator, int count);
member this.Split : char[] * int -> string[]
Public Function Split (separator As Char(), count As Integer) As String()

매개 변수

separator
Char[]

이 문자열의 부분 문자열을 구분하는 문자 배열, 구분 기호를 포함하지 않는 빈 배열 또는 null입니다.An array of characters that delimit the substrings in this string, an empty array that contains no delimiters, or null.

count
Int32

반환할 부분 문자열의 최대 수입니다.The maximum number of substrings to return.

반환

String[]

해당 요소에 separator에 있는 하나 이상의 문자로 구분되는 이 인스턴스의 부분 문자열이 포함된 배열입니다.An array whose elements contain the substrings in this instance that are delimited by one or more characters in separator. 자세한 내용은 설명 섹션을 참조하세요.For more information, see the Remarks section.

예외

count가 음수입니다.count is negative.

예제

다음 예에서는를 count 사용 하 여에서 반환 되는 문자열 수를 제한 하는 방법을 보여 줍니다 Split .The following example demonstrates how count can be used to limit the number of strings returned by Split.

string name = "Alex Johnson III";

string[] subs = name.Split(null, 2);

string firstName = subs[0];
string lastName;
if (subs.Length > 1)
{
    lastName = subs[1];
}

// firstName = "Alex"
// lastName = "Johnson III"
Console.WriteLine("What is your name?")
Dim name As String = Console.ReadLine()

Dim substrings = name.Split(Nothing, 2)
Dim firstName As String = substrings(0)
Dim lastName As String

If substrings.Length > 1 Then
    lastName = substrings(1)
End If

' If the user enters "Alex Johnson III":
' firstName = "Alex"
' lastName = "Johnson III"

설명

구분 기호 문자는 반환 된 배열의 요소에 포함 되지 않습니다.Delimiter characters are not included in the elements of the returned array.

이 인스턴스에에 문자가 포함 되어 있지 않으면 separator 반환 된 배열은이 인스턴스가 포함 된 단일 요소로 구성 됩니다.If this instance does not contain any of the characters in separator, the returned array consists of a single element that contains this instance. count가 0 이면 빈 배열이 반환 됩니다.If count is zero, an empty array is returned.

separator매개 변수가 null 이거나 문자를 포함 하지 않는 경우 공백 문자는 구분 기호로 간주 됩니다.If the separator parameter is null or contains no characters, white-space characters are assumed to be the delimiters. 공백 문자는 유니코드 표준에 의해 정의 되며 Char.IsWhiteSpace 메서드에서 true 전달 되는 경우 반환 됩니다.White-space characters are defined by the Unicode standard and the Char.IsWhiteSpace method returns true if they are passed to it.

의 각 요소 separator 는 별도의 구분 기호 문자를 정의 합니다.Each element of separator defines a separate delimiter character. 두 구분 기호가 인접 하거나이 인스턴스의 시작 부분 또는 끝 부분에 구분 기호가 있으면 해당 하는 배열 요소는를 포함 Empty 합니다.If two delimiters are adjacent, or a delimiter is found at the beginning or end of this instance, the corresponding array element contains Empty.

count이 인스턴스에 부분 문자열이 있는 경우 첫 번째 count - 1 부분 문자열은 반환 값의 첫 번째 요소에서 반환 되 count - 1 고이 인스턴스의 나머지 문자는 반환 값의 마지막 요소에서 반환 됩니다.If there are more than count substrings in this instance, the first count - 1 substrings are returned in the first count - 1 elements of the return value, and the remaining characters in this instance are returned in the last element of the return value.

count가 부분 문자열의 수보다 크면 사용 가능한 부분 문자열이 반환 되 고 예외가 throw 되지 않습니다.If count is greater than the number of substrings, the available substrings are returned and no exception is thrown.

다음 표에서 몇 가지 예를 보여 줍니다.The following table shows some examples.

언어Language 문자열 값String value 구분 기호Separator 반환 된 배열Returned array
C#C# "42, 12, 19""42, 12, 19" new Char [] {', ', ' '}new Char[] {',', ' '} {"42", "", "12", "", "19"}{"42", "", "12", "", "19"}
Visual BasicVisual Basic "42, 12, 19""42, 12, 19" Char () = {"," c "," c})Char() = {","c, " "c}) {"42", "", "12", "", "19"}{"42", "", "12", "", "19"}
C#C# "42 ... 12 ....""42..12..19." 새 Char [] {'. '}new Char[] {'.'} {"42", "", "12", "", "19", ""}{"42", "", "12", "", "19", ""}
Visual BasicVisual Basic "42 ... 12 ....""42..12..19." Char () = {"." cChar() = {"."c} {"42", "", "12", "", "19", ""}{"42", "", "12", "", "19", ""}
C#C# 바나나"Banana" 새 Char [] {'. '}new Char[] {'.'} {"바나나"}{"Banana"}
Visual BasicVisual Basic 바나나"Banana" Char () = {"." cChar() = {"."c} {"바나나"}{"Banana"}
C#C# "Darb\nSmarba""Darb\nSmarba" new Char [] {}new Char[] {} {"Darb", "Smarba"}{"Darb", "Smarba"}
Visual BasicVisual Basic "Darb" & vbLf & "Smarba""Darb" & vbLf & "Smarba" Char () = {}Char() = {} {"Darb", "Smarba"}{"Darb", "Smarba"}
C#C# "Darb\nSmarba""Darb\nSmarba" nullnull {"Darb", "Smarba"}{"Darb", "Smarba"}
Visual BasicVisual Basic "Darb" & vbLf & "Smarba""Darb" & vbLf & "Smarba" NothingNothing {"Darb", "Smarba"}{"Darb", "Smarba"}

성능 고려 사항Performance considerations

Split메서드는 반환 된 배열 개체에 대해 메모리를 할당 하 고 String 각 배열 요소에 대해 개체를 할당 합니다.The Split methods allocate memory for the returned array object and a String object for each array element. 애플리케이션에 필요한 최적의 성능, 메모리 할당을 관리 하는 것이 중요 애플리케이션 사용을 고려 합니다 IndexOf 또는 IndexOfAny 메서드 및 필요에 따라는 Compare 문자열 내에서 부분 문자열을 찾을 방법입니다.If your application requires optimal performance or if managing memory allocation is critical in your application, consider using the IndexOf or IndexOfAny method, and optionally the Compare method, to locate a substring within a string.

구분 문자에서 문자열을 분할 하는 경우 또는 메서드를 사용 IndexOf IndexOfAny 하 여 문자열에서 구분 기호 문자를 찾습니다.If you are splitting a string at a separator character, use the IndexOf or IndexOfAny method to locate a separator character in the string. 구분 기호 문자열에서 문자열을 분할 하는 경우 IndexOf 또는 메서드를 사용 IndexOfAny 하 여 구분 기호 문자열의 첫 번째 문자를 찾습니다.If you are splitting a string at a separator string, use the IndexOf or IndexOfAny method to locate the first character of the separator string. 그런 다음 메서드를 사용 Compare 하 여 첫 번째 문자 뒤의 문자가 구분 기호 문자열의 나머지 문자와 같은지 여부를 확인 합니다.Then use the Compare method to determine whether the characters after that first character are equal to the remaining characters of the separator string.

또한 여러 메서드 호출에서 문자열을 분할 하는 데 동일한 문자 집합을 사용 하는 경우 Split 단일 배열을 만들고 각 메서드 호출에서 참조 하는 것이 좋습니다.In addition, if the same set of characters is used to split strings in multiple Split method calls, consider creating a single array and referencing it in each method call. 이렇게 하면 각 메서드 호출의 추가 오버 헤드가 크게 줄어듭니다.This significantly reduces the additional overhead of each method call.

호출자 참고

.NET Framework 3.5.NET Framework 3.5및 이전 버전에서 Split(Char[]) 메서드에 separator 문자를 포함 하지 않는가 전달 되는 경우이 null 메서드는 약간 다른 공백 문자 집합을 사용 Trim(Char[]) 하 여 문자열을 자르는 방법 보다 문자열을 분할 합니다.In .NET Framework 3.5.NET Framework 3.5 and earlier versions, if the Split(Char[]) method is passed a separator that is null or contains no characters, the method uses a slightly different set of white-space characters to split the string than the Trim(Char[]) method does to trim the string. .NET Framework 4부터 두 방법 모두 동일한 유니코드 공백 문자 집합을 사용 합니다.Starting with .NET Framework 4, both methods use an identical set of Unicode white-space characters.

추가 정보

적용 대상

Split(Char, StringSplitOptions)

지정된 구분 문자 및 옵션(필요에 따라)에 따라 문자열을 부분 문자열로 분할합니다.Splits a string into substrings based on a specified delimiting character and, optionally, options.

public string[] Split (char separator, StringSplitOptions options = System.StringSplitOptions.None);
member this.Split : char * StringSplitOptions -> string[]
Public Function Split (separator As Char, Optional options As StringSplitOptions = System.StringSplitOptions.None) As String()

매개 변수

separator
Char

이 문자열에서 부분 문자열을 구분하는 문자입니다.A character that delimits the substrings in this string.

options
StringSplitOptions

부분 문자열을 자르고 빈 부분 문자열을 포함할지를 지정하는 열거형 값의 비트 조합입니다.A bitwise combination of the enumeration values that specifies whether to trim substrings and include empty substrings.

반환

String[]

요소에 separator로 구분되는 이 인스턴스의 부분 문자열이 포함된 배열입니다.An array whose elements contain the substrings from this instance that are delimited by separator.

적용 대상

Split(String, StringSplitOptions)

문자열을 제공된 문자열 구분 기호에 기초하는 부분 문자열로 분할합니다.Splits a string into substrings that are based on the provided string separator.

public string[] Split (string? separator, StringSplitOptions options = System.StringSplitOptions.None);
public string[] Split (string separator, StringSplitOptions options = System.StringSplitOptions.None);
member this.Split : string * StringSplitOptions -> string[]
Public Function Split (separator As String, Optional options As StringSplitOptions = System.StringSplitOptions.None) As String()

매개 변수

separator
String

이 문자열에서 부분 문자열을 구분하는 문자열입니다.A string that delimits the substrings in this string.

options
StringSplitOptions

부분 문자열을 자르고 빈 부분 문자열을 포함할지를 지정하는 열거형 값의 비트 조합입니다.A bitwise combination of the enumeration values that specifies whether to trim substrings and include empty substrings.

반환

String[]

요소에 separator로 구분되는 이 인스턴스의 부분 문자열이 포함된 배열입니다.An array whose elements contain the substrings from this instance that are delimited by separator.

적용 대상

Split(Char[])

지정된 구분 문자에 따라 문자열을 부분 문자열로 분할합니다.Splits a string into substrings based on specified delimiting characters.

public:
 cli::array <System::String ^> ^ Split(... cli::array <char> ^ separator);
public string[] Split (params char[] separator);
public string[] Split (params char[]? separator);
member this.Split : char[] -> string[]
Public Function Split (ParamArray separator As Char()) As String()

매개 변수

separator
Char[]

구분 문자 배열, 구분 기호를 포함하지 않는 빈 배열 또는 null입니다.An array of delimiting characters, an empty array that contains no delimiters, or null.

반환

String[]

요소에 separator에 있는 하나 이상의 문자로 구분되는 이 인스턴스의 부분 문자열이 포함된 배열입니다.An array whose elements contain the substrings from this instance that are delimited by one or more characters in separator. 자세한 내용은 설명 섹션을 참조하세요.For more information, see the Remarks section.

예제

다음 예제에서는 공백 문자 ( )와 탭 문자 ()를 구분 기호로 처리 하 여 텍스트 블록에서 개별 단어를 추출 하는 방법을 보여 줍니다 \t .The following example demonstrates how to extract individual words from a block of text by treating the space character ( ) and tab character (\t) as delimiters. 분할 되는 문자열에는 이러한 문자가 모두 포함 됩니다.The string being split includes both of these characters.

string s = "Today\tI'm going to school";
string[] subs = s.Split(' ', '\t');

foreach (var sub in subs)
{
    Console.WriteLine($"Substring: {sub}");
}

// This example produces the following output:
//
// Substring: Today
// Substring: I'm
// Substring: going
// Substring: to
// Substring: school
Dim s As String = "Today" & vbTab & "I'm going to school"
Dim subs As String() = s.Split(" "c, Char.Parse(vbTab))

For Each substring In subs
    Console.WriteLine("Substring: " & substring)
Next

' This example produces the following output:
'
' Substring: Today
' Substring: I 'm
' Substring: going
' Substring: to
' Substring: school

설명

문자열이 알려진 문자 집합으로 구분 되는 경우 메서드를 사용 하 여 해당 문자열을 부분 문자열로 구분할 수 있습니다 Split(Char[]) .When a string is delimited by a known set of characters, you can use the Split(Char[]) method to separate it into substrings.

구분 기호 문자는 반환 된 배열의 요소에 포함 되지 않습니다.Delimiter characters are not included in the elements of the returned array. 예를 들어, 구분 기호 배열에 "-" 문자가 포함 되 고 현재 문자열 인스턴스의 값이 "aa-bb-cc" 인 경우이 메서드는 "aa", "bb" 및 "cc" 라는 세 개의 요소가 포함 된 배열을 반환 합니다.For example, if the separator array includes the character "-" and the value of the current string instance is "aa-bb-cc", the method returns an array that contains three elements: "aa", "bb", and "cc".

이 인스턴스에에 문자가 포함 되어 있지 않으면 separator 반환 된 배열은이 인스턴스가 포함 된 단일 요소로 구성 됩니다.If this instance does not contain any of the characters in separator, the returned array consists of a single element that contains this instance.

의 각 요소 separator 는 별도의 구분 기호 문자를 정의 합니다.Each element of separator defines a separate delimiter character. 두 구분 기호가 인접 하거나이 인스턴스의 시작 부분 또는 끝 부분에 구분 기호가 있으면 반환 된 배열의 해당 요소에가 포함 됩니다 Empty .If two delimiters are adjacent, or a delimiter is found at the beginning or end of this instance, the corresponding element in the returned array contains Empty.

다음 표에서 몇 가지 예를 보여 줍니다.The following table shows some examples.

언어Language 문자열 값String value 구분 기호Separator 반환 된 배열Returned array
C#C# "42, 12, 19""42, 12, 19" new Char [] {', ', ' '}new Char[] {',', ' '} {"42", "", "12", "", "19"}{"42", "", "12", "", "19"}
Visual BasicVisual Basic "42, 12, 19""42, 12, 19" Char () = {"," c "," c})Char() = {","c, " "c}) {"42", "", "12", "", "19"}{"42", "", "12", "", "19"}
C#C# "42 ... 12 ....""42..12..19." 새 Char [] {'. '}new Char[] {'.'} {"42", "", "12", "", "19", ""}{"42", "", "12", "", "19", ""}
Visual BasicVisual Basic "42 ... 12 ....""42..12..19." Char () = {"." cChar() = {"."c} {"42", "", "12", "", "19", ""}{"42", "", "12", "", "19", ""}
C#C# 바나나"Banana" 새 Char [] {'. '}new Char[] {'.'} {"바나나"}{"Banana"}
Visual BasicVisual Basic 바나나"Banana" Char () = {"." cChar() = {"."c} {"바나나"}{"Banana"}
C#C# "Darb\nSmarba""Darb\nSmarba" new Char [] {}new Char[] {} {"Darb", "Smarba"}{"Darb", "Smarba"}
Visual BasicVisual Basic "Darb" & vbLf & "Smarba""Darb" & vbLf & "Smarba" Char () = {}Char() = {} {"Darb", "Smarba"}{"Darb", "Smarba"}
C#C# "Darb\nSmarba""Darb\nSmarba" nullnull {"Darb", "Smarba"}{"Darb", "Smarba"}
Visual BasicVisual Basic "Darb" & vbLf & "Smarba""Darb" & vbLf & "Smarba" NothingNothing {"Darb", "Smarba"}{"Darb", "Smarba"}

구분 기호 배열입니다.The separator array

구분 기호의 각 요소는 단일 문자로 구성 된 별도의 구분 기호를 정의 합니다.Each element of separator defines a separate delimiter that consists of a single character.

separator인수가 null 이거나 문자를 포함 하지 않는 경우 메서드는 공백 문자를 구분 기호로 처리 합니다.If the separator argument is null or contains no characters, the method treats white-space characters as the delimiters. 공백 문자는 유니코드 표준에 의해 정의 되며, 메서드는 공백 Char.IsWhiteSpace 문자를 true 전달 하는 경우를 반환 합니다.White-space characters are defined by the Unicode standard, and the Char.IsWhiteSpace method returns true if a white-space character is passed to it.

String.format (Char []) 및 컴파일러 오버 로드 확인String.Split(Char[]) and compiler overload resolution

의이 오버 로드에 대 한 단일 매개 변수는 String.Split 문자 배열 이지만 다음 예제에 나와 있는 것 처럼 단일 문자를 사용 하 여 호출할 수 있습니다.Although the single parameter for this overload of String.Split is a character array, you can call it with a single character, as the following example shows.

string value = "This is a short string.";
char delimiter = 's';
string[] substrings = value.Split(delimiter);
foreach (var substring in substrings)
    Console.WriteLine(substring);

// The example displays the following output:
//     Thi
//      i
//      a
//     hort
//     tring.
    Dim value As String = "This is a short string."
    Dim delimiter As Char = "s"c
    Dim substrings() As String = value.Split(delimiter)
    For Each substring In substrings
        Console.WriteLine(substring)
    Next
End Sub

' The example displays the following output:
'
'     Thi
'      i
'      a
'     hort
'     tring.

separator매개 변수는 특성으로 데코 레이트 되므로 ParamArrayAttribute 컴파일러는 단일 문자를 단일 요소 문자 배열로 해석 합니다.Because the separator parameter is decorated with the ParamArrayAttribute attribute, compilers will interpret a single character as a single-element character array. 이는 String.Split 매개 변수를 포함 하는 다른 오버 로드의 경우에는 그렇지 않습니다. separator 이러한 오버 로드를 문자 배열에 인수로 명시적으로 전달 해야 합니다 separator .This is not the case for other String.Split overloads that include a separator parameter; you must explicitly pass these overloads a character array as the separator argument.

비교 정보Comparison details

Split(Char[])메서드는 배열에 있는 하나 이상의 문자로 구분 되는이 문자열의 부분 문자열을 추출 separator 하 고 해당 부분 문자열을 배열의 요소로 반환 합니다.The Split(Char[]) method extracts the substrings in this string that are delimited by one or more of the characters in the separator array, and returns those substrings as elements of an array.

Split(Char[])메서드는 대/소문자 구분 서 수 정렬 규칙을 사용 하 여 비교를 수행 하 여 구분 기호를 찾습니다.The Split(Char[]) method looks for delimiters by performing comparisons using case-sensitive ordinal sort rules. 단어, 문자열 및 서 수 정렬에 대 한 자세한 내용은 열거형을 참조 하세요 System.Globalization.CompareOptions .For more information about word, string, and ordinal sorts, see the System.Globalization.CompareOptions enumeration.

성능 고려 사항Performance considerations

Split메서드는 반환 된 배열 개체에 대해 메모리를 할당 하 고 String 각 배열 요소에 대해 개체를 할당 합니다.The Split methods allocate memory for the returned array object and a String object for each array element. 애플리케이션에 필요한 최적의 성능, 메모리 할당을 관리 하는 것이 중요 애플리케이션 사용을 고려 합니다 IndexOf 또는 IndexOfAny 메서드.If your application requires optimal performance or if managing memory allocation is critical in your application, consider using the IndexOf or IndexOfAny method. 또한 메서드를 사용 하 여 Compare 문자열 내에서 부분 문자열을 찾는 옵션도 있습니다.You also have the option of using the Compare method to locate a substring within a string.

구분 문자에서 문자열을 분할 하려면 또는 메서드를 사용 IndexOf IndexOfAny 하 여 문자열에서 구분 기호 문자를 찾습니다.To split a string at a separator character, use the IndexOf or IndexOfAny method to locate a separator character in the string. 구분 기호 문자열에서 문자열을 분할 하려면 IndexOf 또는 메서드를 사용 IndexOfAny 하 여 구분 기호 문자열의 첫 번째 문자를 찾습니다.To split a string at a separator string, use the IndexOf or IndexOfAny method to locate the first character of the separator string. 그런 다음 메서드를 사용 Compare 하 여 첫 번째 문자 뒤의 문자가 구분 기호 문자열의 나머지 문자와 같은지 여부를 확인 합니다.Then use the Compare method to determine whether the characters after that first character are equal to the remaining characters of the separator string.

또한 여러 메서드 호출에서 문자열을 분할 하는 데 동일한 문자 집합을 사용 하는 경우 Split 단일 배열을 만들고 각 메서드 호출에서 참조 하는 것이 좋습니다.In addition, if the same set of characters is used to split strings in multiple Split method calls, consider creating a single array and referencing it in each method call. 이렇게 하면 각 메서드 호출의 추가 오버 헤드가 크게 줄어듭니다.This significantly reduces the additional overhead of each method call.

호출자 참고

.NET Framework 3.5.NET Framework 3.5및 이전 버전에서 Split(Char[]) 메서드에 separator 문자를 포함 하지 않는가 전달 되는 경우이 null 메서드는 약간 다른 공백 문자 집합을 사용 Trim(Char[]) 하 여 문자열을 자르는 방법 보다 문자열을 분할 합니다.In .NET Framework 3.5.NET Framework 3.5 and earlier versions, if the Split(Char[]) method is passed a separator that is null or contains no characters, the method uses a slightly different set of white-space characters to split the string than the Trim(Char[]) method does to trim the string. .NET Framework 4부터 두 방법 모두 동일한 유니코드 공백 문자 집합을 사용 합니다.Starting with .NET Framework 4, both methods use an identical set of Unicode white-space characters.

추가 정보

적용 대상