이 페이지가 유용했습니까?
이 콘텐츠에 대한 여러분의 의견은 중요합니다. 의견을 알려주십시오.
추가 의견
1500자 남음
내보내기(0) 인쇄
모두 확장
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

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

2013-12-13

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

Namespace:  System
어셈블리:  mscorlib(mscorlib.dll)

public string[] Split(
	char[] separator,
	StringSplitOptions options
)

매개 변수

separator
형식: System.Char []
이 문자열의 부분 문자열을 구분하는 유니코드 문자 배열이거나, 구분 기호가 없는 빈 배열이거나, null입니다.
options
형식: System.StringSplitOptions
반환된 배열에 빈 요소가 포함되어 있는지 여부를 나타내는 플래그입니다. 반환된 배열에서 빈 요소를 생략하려면 StringSplitOptions.RemoveEmptyEntries를 지정합니다. 반환된 배열에 빈 요소를 포함시키려면 StringSplitOptions.None을 지정합니다.

반환 값

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

예외조건
ArgumentException

optionsStringSplitOptions 열거형의 멤버가 아닌 경우

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

이 인스턴스가 separator의 문자를 포함하지 않으면 반환된 배열은 이 인스턴스를 포함하는 단일 요소로 구성됩니다. separator 매개 변수가 null이거나 문자를 포함하지 않으면 공백 문자를 구분 기호로 간주합니다. Split 메서드에서 공백으로 해석되는 문자 목록을 보려면 String.Split(Char[]) 메서드의 설명 단원에 나와 있는 표를 참조하세요. 이 목록은 Trim() 메서드에서 인식되는 공백 문자 목록과 약간 다릅니다. 그러나 이 메서드 오버로드를 호출하는 separator 매개 변수가 null인 경우 컴파일러 오버로드 확인에 실패합니다. 호출된 메서드를 명확하게 식별하려면 코드는 null의 형식을 나타내야 합니다. 다음 예제에서는 이 오버로드를 명확하게 식별하는 여러 가지 방법을 보여 줍니다.


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

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

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

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


separator의 각 요소는 개별 구분 문자를 정의합니다. options 매개 변수가 RemoveEmptyEntries이고 이 인스턴스의 길이가 0이면 빈 배열이 반환됩니다.

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

성능 고려 사항

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

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

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

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


using System;

class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      string s1 = ",ONE,,TWO,,,THREE,,";
      string s2 = "[stop]" +
                  "ONE[stop][stop]" +
                  "TWO[stop][stop][stop]" +
                  "THREE[stop][stop]";
      char[] charSeparators = { ',' };
      string[] stringSeparator = {"[stop]"};
      string[] result;
      // ------------------------------------------------------------------------------
      // Split a string delimited by characters.
      // ------------------------------------------------------------------------------
      outputBlock.Text += "1) Split a string delimited by characters:\n" + "\n";

      // Display the original string and delimiter characters.
      outputBlock.Text += String.Format("1a )The original string is \"{0}\".", s1) + "\n";
      outputBlock.Text += String.Format("The delimiter character is '{0}'.\n",
                         charSeparators[0]) + "\n";

      // Split a string delimited by characters and return all elements.
      outputBlock.Text += String.Format("1b) Split a string delimited by characters and " +
                        "return all elements:") + "\n";
      result = s1.Split(charSeparators, StringSplitOptions.None);
      Show(outputBlock, result);

      // Split a string delimited by characters and return all non-empty elements.
      outputBlock.Text += String.Format("1c) Split a string delimited by characters and " +
                        "return all non-empty elements:") + "\n";
      result = s1.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries);
      Show(outputBlock, result);

      // ------------------------------------------------------------------------------
      // Split a string delimited by another string.
      // ------------------------------------------------------------------------------
      outputBlock.Text += "2) Split a string delimited by another string:\n" + "\n";

      // Display the original string and delimiter string.
      outputBlock.Text += String.Format("2a) The original string is \"{0}\".", s2) + "\n";
      outputBlock.Text += String.Format("The delimiter string is \"{0}\".\n", stringSeparator[0]) + "\n";

      // Split a string delimited by another string and return all elements.
      outputBlock.Text += String.Format("2b) Split a string delimited by another string and " +
                        "return all elements:") + "\n";
      result = s2.Split(stringSeparator, StringSplitOptions.None);
      Show(outputBlock, result);

      // Split the original string at the delimiter and return all non-empty elements.
      outputBlock.Text += String.Format("2c) Split a string delimited by another string and " +
                        "return all non-empty elements:") + "\n";
      result = s2.Split(stringSeparator, StringSplitOptions.RemoveEmptyEntries);
      Show(outputBlock, result);
   }

   // Display the array of separated strings.
   public static void Show(System.Windows.Controls.TextBlock outputBlock, string[] entries)
   {
      outputBlock.Text += String.Format("The return value contains these {0} elements:", entries.Length) + "\n";
      foreach (string entry in entries)
      {
         outputBlock.Text += String.Format("<{0}>", entry);
      }
      outputBlock.Text += "\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>

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>

*/


Windows Phone OS

지원되는 버전: 8.0, 7.1, 7.0

Windows Phone

표시:
© 2015 Microsoft