내보내기(0) 인쇄
모두 확장
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

String.Split 메서드 (Char[])

2013-12-13

지정된 유니코드 문자 배열의 요소로 구분된 이 인스턴스의 부분 문자열이 들어 있는 문자열 배열을 반환합니다.

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

public string[] Split(
	params char[] separator
)

매개 변수

separator
형식: System.Char []
이 인스턴스의 부분 문자열을 구분하는 유니코드 문자 배열이거나, 구분 기호가 없는 빈 배열이거나, null입니다.

반환 값

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

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

이 인스턴스가 separator의 문자를 포함하지 않으면 반환된 배열은 이 인스턴스를 포함하는 단일 요소로 구성됩니다.

separator 매개 변수가 null이거나 문자를 포함하지 않으면 공백 문자를 구분 기호로 간주합니다. 다음 표에서는 Split 메서드가 인식하는 공백 문자를 보여 줍니다. 이는 String.Trim 메서드가 인식하는 공백 문자와 약간 다릅니다.

유니코드 이름

유니코드 코드 포인트

CHARACTER TABULATION

U+0009

LINE FEED

U+000A

LINE TABULATION

U+000B

FORM FEED

U+000C

CARRIAGE RETURN

U+000D

SPACE

U+0020

NEXT LINE

U+0085

NO-BREAK SPACE

U+00A0

OGHAM SPACE MARK

U+1680

EN QUAD

U+2000

EM QUAD

U+2001

EN SPACE

U+2002

EM SPACE

U+2003

THREE-PER-EM SPACE

U+2004

FOUR-PER-EM SPACE

U+2005

SIX-PER-EM SPACE

U+2006

FIGURE SPACE

U+2007

PUNCTUATION SPACE

U+2008

THIN SPACE

U+2009

HAIR SPACE

U+200A

ZERO WIDTH SPACE

U+200B

LINE SEPARATOR

U+2028

PARAGRAPH SEPARATOR

U+2029

IDEOGRAPHIC SPACE

U+3000

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

예를 들면 다음과 같습니다.

문자열 값

구분 기호

반환되는 배열

"42, 12, 19"

new Char[] {',', ' '}(C#)

Char() = {","c, " "c})(Visual Basic)

{"42", "", "12", "", "19"}

"42..12..19"

new Char[] {'.'} (C#)

Char() = {"."c}(Visual Basic)

{"42", "", "12", "", "19"}

"Banana"

new Char[] {'.'} (C#)

Char() = {"."c}(Visual Basic)

{"Banana"}

"Darb\nSmarba"(C#)

"Darb" & vbLf & "Smarba"(Visual Basic)

new Char[] {}(C#)

Char() = {}(Visual Basic)

{"Darb", "Smarba"}

"Darb\nSmarba"(C#)

"Darb" & vbLf & "Smarba"(Visual Basic)

null(C#)

Nothing(Visual Basic)

{"Darb", "Smarba"}

성능 고려 사항

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

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

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

다음 예제에서는 공백 및 문장 부호를 구분 기호로 취급하여 텍스트 블록에서 개별 단어를 추출하는 방법을 보여 줍니다. Split(Char[]) 메서드의 separator 매개 변수에 전달되는 문자 배열은 공백 문자 및 탭 문자와 몇 가지 일반적인 문장 부호로 구성됩니다.


using System;

public class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {

      string words = "This is a list of words, with: a bit of punctuation" +
                     "\tand a tab character.";

      string[] split = words.Split(new Char[] { ' ', ',', '.', ':', '\t' });

      foreach (string s in split)
      {

         if (s.Trim() != "")
            outputBlock.Text += s + "\n";
      }
   }
}
// The example displays the following output:
//       This
//       is
//       a
//       list
//       of
//       words
//       with
//       a
//       bit
//       of
//       punctuation
//       and
//       a
//       tab
//       character


Windows Phone OS

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

Windows Phone

표시:
© 2014 Microsoft