내보내기(0) 인쇄
모두 확장
이 문서는 기계로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오. 추가 정보
번역
원본

String.Split 메서드 (Char[], Int32, StringSplitOptions)

지정된 유니코드 문자 배열의 요소로 구분된 이 문자열의 부분 문자열이 들어 있는 문자열 배열을 반환합니다. 매개 변수는 반환할 부분 문자열의 최대 수 및 빈 배열 요소를 반환할지 여부를 지정합니다.

네임스페이스:  System
어셈블리:  mscorlib(mscorlib.dll)

[ComVisibleAttribute(false)]
public string[] Split(
	char[] separator,
	int count,
	StringSplitOptions options
)

매개 변수

separator
형식: System.Char[]
이 문자열의 부분 문자열을 구분하는 유니코드 문자, 구분 기호를 포함하지 않는 빈 배열, 또는 null입니다.
count
형식: System.Int32
반환할 부분 문자열의 최대 수입니다.
options
형식: System.StringSplitOptions
반환된 배열에서 빈 배열 요소를 생략하려면 StringSplitOptions.RemoveEmptyEntries이고, 반환된 배열에 빈 배열 요소를 포함하려면 StringSplitOptions.None입니다.

반환 값

형식: System.String[]
해당 요소에 separator에 있는 하나 이상의 문자로 구분되는 이 문자열의 부분 문자열이 포함된 배열입니다. 자세한 내용은 설명 단원을 참조하십시오.

예외조건
ArgumentOutOfRangeException

count가 음수인 경우

ArgumentException

optionsStringSplitOptions 값 중 하나가 아닌 경우

구분 기호 문자는 반환된 배열의 요소에 포함되지 않습니다.

이 인스턴스가 separator의 문자를 포함하지 않거나 count 매개 변수가 1이면 반환된 배열은 이 인스턴스를 포함하는 단일 요소로 구성됩니다. separator 매개 변수가 null이거나 문자를 포함하지 않으면 공백 문자를 구분 기호로 간주합니다. 공백 문자는 유니코드 표준으로 정의되며 Char.IsWhiteSpace 메서드에 전달되는 경우 true를 반환합니다. 그러나 이 메서드 오버로드를 호출하는 separator 매개 변수가 null인 경우 컴파일러 오버로드 확인에 실패합니다. 호출된 메서드를 명확하게 식별하려면 코드는 null의 형식을 나타내야 합니다. 다음 예제에서는 이 오버로드를 명확하게 식별하는 여러 가지 방법을 보여줍니다.


string phrase = "The quick  brown fox";
string[] words;

words = phrase.Split(default(Char[]), 3, StringSplitOptions.RemoveEmptyEntries);

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

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


count 매개 변수가 0이거나 options 매개 변수가 RemoveEmptyEntries이고 이 인스턴스의 길이가 0이면 빈 배열이 반환됩니다.

separator의 각 요소는 개별 구분 문자를 정의합니다. options 매개 변수가 None이고 두 개의 구분 기호가 인접해 있거나 구분 기호가 이 인스턴스의 시작 위치나 끝 위치에 있으면 해당 배열 요소에 Empty가 포함됩니다.

이 인스턴스에 부분 문자열이 count 개 이상 있는 경우, 반환 값의 첫째 count에서 1을 뺀 수만큼의 요소에 대해 첫째 count에서 1을 뺀 수만큼의 부분 문자열이 반환되며, 이 인스턴스의 나머지 문자는 반환 값의 마지막 요소에 반환됩니다.

count가 부분 문자열의 수보다 크면 사용할 수 있는 부분 문자열이 반환되고 예외가 throw되지 않습니다.

성능 고려 사항

Split 메서드는 반환되는 배열 개체 및 각 배열 요소의 String 개체에 메모리를 할당합니다. 응용 프로그램에 최적의 성능이 필요하거나 응용 프로그램에서 메모리 할당 관리가 중요한 경우에는 IndexOf 또는 IndexOfAny 메서드와 선택적으로 Compare 메서드를 사용하여 문자열 내에서 부분 문자열을 찾는 것이 좋습니다.

문자열이 구분 문자로 분할되어 있으면 IndexOf 또는 IndexOfAny 메서드를 사용하여 문자열에서 구분 문자를 찾습니다. 문자열이 구분 문자열로 분할되어 있으면 IndexOf 또는 IndexOfAny 메서드를 사용하여 구분 문자열의 첫 번째 문자를 찾습니다. 그런 다음 Compare 메서드를 사용하여 첫 번째 문자 다음의 문자가 구분 문자열의 나머지 문자와 같은지 확인합니다.

또한 같은 문자 집합이 여러 Split 메서드 호출에서 문자열을 분리하는 데 사용되는 경우 단일 배열을 만들고 각 메서드 호출에서 이를 참조하는 것이 좋습니다. 이렇게 하면 각 메서드 호출의 추가적인 오버헤드가 크게 줄어듭니다.

호출자 참고 사항

.NET Framework 3.5 및 이전 버전에서 Split 메서드에 null이거나 문자열이 포함되지 않은 separator가 전달되는 경우 Trim 메서드가 문자열을 트리밍하는 것과 약간 다른 문자 집합을 사용하여 문자열을 분할합니다. .NET Framework 4에서 두 메서드 모두 유니코드 공백 문자의 동일한 집합을 사용합니다.

다음 예제에서는 StringSplitOptions 열거형을 사용하여 Split 메서드에서 생성된 부분 문자열을 포함하거나 제외합니다.


// This example demonstrates the String() methods that use
// the StringSplitOptions enumeration.
using System;

class Sample 
{
    public static void Main() 
    {
    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 \"{0}\".", s1);
    Console.WriteLine("The delimiter character is '{0}'.\n", 
                       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:\n");

// Display the original string and delimiter string.
    Console.WriteLine("2a) The original string is \"{0}\".", s2);
    Console.WriteLine("The delimiter string is \"{0}\".\n", 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);
    }

// Display the array of separated strings.
    public static void Show(string[] entries)
    {
    Console.WriteLine("The return value contains these {0} elements:", entries.Length);
    foreach (string entry in entries)
        {
        Console.Write("<{0}>", 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]>

*/


.NET Framework

4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0에서 지원

.NET Framework Client Profile

4, 3.5 SP1에서 지원

이식 가능한 클래스 라이브러리

이식 가능한 클래스 라이브러리에서 지원

Windows 스토어 앱용 .NET

Windows 8에서 지원

Windows Phone 앱용 .NET

Windows Phone 8, Silverlight 8.1에서 지원

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008(서버 코어 역할은 지원되지 않음), Windows Server 2008 R2(서버 코어 역할은 SP1 이상에서 지원, Itanium은 지원되지 않음)

.NET Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

커뮤니티 추가 항목

추가
Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2014 Microsoft