티스토리 뷰
String.Split 메서드
문자열을 분할하는 함수
Split은 제공된 문자열에서 지정한 문자열 또는 유니코드 문자 배열의 요소를 기준으로 나누어 문자열 배열을 반환하는 함수이다.
문자 배열 또는 문자열 배열을 사용하여 0개 이상의 구분 문자 또는 문자열을 지정할 수 있다.
구분 문자를 지정하지 않으면 문자열은 공백 문자로 분할된다.
팁
메서드가 Split 구분된 문자열을 부분 문자열로 분리하는 가장 좋은 방법은 아니다. 구분된 문자열의 모든 부분 문자열을 추출하지 않으려거나 구분 기호 문자 집합 대신 패턴에 따라 문자열을 구문 분석하려는 경우 정규식을 사용하거나 문자의 인덱스를 반환하는 검색 메서드 중 하나를 메서드와 Substring 결합하는 것이 좋다.
네임스페이스 | System | |
어셈블리 | System.Runtime.dll | |
함수명 | String.Split | 지정된 문자열 또는 유니코드 문자 배열의 요소로 구분된 이 인스턴스의 부분 문자열이 포함된 문자열 배열을 반환 |
오버로드 |
Split(Char[]) | 지정된 구분 문자에 따라 문자열을 부분 문자열로 분할 |
Split(Char, StringSplitOptions) | 지정된 구분 문자 및 옵션(필요에 따라)에 따라 문자열을 부분 문자열로 분할 | |
Split(Char[], Int32) | 지정된 구분 문자에 따라 문자열을 최대 개수의 부분 문자열로 분할 | |
Split(Char[], StringSplitOptions) | 지정된 구분 문자 및 옵션에 따라 문자열을 부분 문자열로 분할 | |
Split(String, StringSplitOptions) | 문자열을 제공된 문자열 구분 기호에 기초하는 부분 문자열로 분할 | |
Split(String[], StringSplitOptions) | 지정된 구분 문자열 및 옵션(필요에 따라)에 따라 문자열을 부분 문자열로 분할 | |
Split(Char, Int32, StringSplitOptions) | 지정된 구분 문자 및 옵션(필요에 따라)에 따라 문자열을 분할 제공된 문자 구분 기호에 따라 문자열을 최대 개수의 부분 문자열로 분할 필요에 따라 결과에서 빈 부분 문자열을 생략 |
|
Split(Char[], Int32, StringSplitOptions) | 지정된 구분 문자 및 옵션(필요에 따라)에 따라 문자열을 최대 개수의 부분 문자열로 분할 | |
Split(String, Int32, StringSplitOptions) | 지정된 구분 문자열 및 옵션(필요에 따라)에 따라 문자열을 최대 개수의 부분 문자열로 분할 | |
Split(String[], Int32, StringSplitOptions) | 지정된 구분 문자열 및 옵션(필요에 따라)에 따라 문자열을 최대 개수의 부분 문자열로 분할 | |
매개변수 |
구분 문자 | 문자열 분할에 사용되는 분할 지점을 정하는 문자 값 |
구분 문자 배열 | 문자열 배열에 포함된 모든 문자를 분할 지점으로 정하는 값 | |
옵션 (StringSplitOptions) | 문자열 분할에 사용될 옵션 값 | |
최대 개수 | 분할할 수 있는 최대 개수 제한 값 | |
반환값 | String |
Split(Char[])
함수명 | Split(Char[]) | 문자 배열 속 모든 원소를 구분점으로 구별 |
매개변수 | 구분문 배열 | 구분점으로 사용될 문자들의 배열 |
// public string[] Split (params char[]? separator);
Console.WriteLine("Split(Char[])");
Show(example.Split(charSeparator));
//Split(Char[])
//<><ONE><><TWO><><><THREE><><TWO><><THREE>
Split(Char, StringSplitOptions)
함수명 | Split(Char, StringSplitOptions) | 구분 문자와 구분 옵션으로 출력 값을 설정하는 함수 |
매개변수 |
구분 문자 | 구분점으로 사용될 문자 |
구분 옵션 | 구분된 문자열 배열을 후처리하는 옵션값 |
// public string[] Split (char separator, StringSplitOptions options = System.StringSplitOptions.None);
Console.WriteLine("Split(Char, StringSplitOptions)");
Console.WriteLine("StringSplitOptions.None : ");
Show(example.Split(charSeparator, StringSplitOptions.None));
Console.WriteLine("StringSplitOptions.RemoveEmptyEntries : ");
Show(example.Split(charSeparator, StringSplitOptions.RemoveEmptyEntries));
//Split(Char, StringSplitOptions)
//StringSplitOptions.None :
//<><ONE><><TWO><><><THREE><><TWO><><THREE>
//StringSplitOptions.RemoveEmptyEntries :
//<ONE><TWO><THREE><TWO><THREE>
Split(Char[], Int32)
함수명 | Split(Char[], Int32) | 구분 문자 배열과 구분 배열 최대값을 정하는 함수 |
매개변수 |
구분 문자 | 구분점으로 사용될 문자 |
최대 배열 길이 설정 | 반환 배열의 최대 길이를 선택하여 최대값 이상으로 구분하지 않음 |
// public string[] Split (char[]? separator, int count);
Console.WriteLine("Split(Char[], Int32)");
Show(example.Split(charSeparators, 3));
//Split(Char[], Int32)
//<><ONE><,TWO,,,THREE,,TWO,,THREE>
Split(Char[], StringSplitOptions)
함수명 | Split(Char[], StringSplitOptions) | 구분 문자 배열과 구분 옵션으로 출력 값을 설정하는 함수 |
매개변수 |
구분 문자 | 구분점으로 사용될 문자 |
구분 옵션 | 구분된 문자열 배열을 후처리하는 옵션값 |
// public string[] Split (char[]? separator, StringSplitOptions options);
Console.WriteLine("Split(Char[], StringSplitOptions)");
Console.WriteLine("StringSplitOptions.None : ");
Show(example.Split(charSeparators, StringSplitOptions.None));
Console.WriteLine("StringSplitOptions.RemoveEmptyEntries : ");
Show(example.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries));
//Split(Char[], StringSplitOptions)
//StringSplitOptions.None :
//<><ONE><><TWO><><><THREE><><TWO><><THREE>
//StringSplitOptions.RemoveEmptyEntries :
//<ONE><TWO><THREE><TWO><THREE>
Split(String, StringSplitOptions)
함수명 | Split(String, StringSplitOptions) | 구분 문자열과 구분 옵션으로 출력 값을 설정하는 함수 |
매개변수 |
구분 문자열 | 구분점으로 사용될 문자열 |
구분 옵션 | 구분된 문자열 배열을 후처리하는 옵션값 |
// public string[] Split (string? separator, StringSplitOptions options = System.StringSplitOptions.None);
Console.WriteLine("Split(String, StringSplitOptions)");
Console.WriteLine("StringSplitOptions.None : ");
Show(example.Split(stringSeparator, StringSplitOptions.None));
Console.WriteLine("StringSplitOptions.RemoveEmptyEntries : ");
Show(example.Split(stringSeparator, StringSplitOptions.RemoveEmptyEntries));
//Split(String, StringSplitOptions)
//StringSplitOptions.None :
//<><ONE><><TWO><><><THREE><><TWO><><THREE>
//StringSplitOptions.RemoveEmptyEntries :
//<ONE><TWO><THREE><TWO><THREE>
Split(String[], StringSplitOptions)
함수명 | Split(String[], StringSplitOptions) | 구분 문자열 배열과 구분 옵션으로 출력 값을 설정하는 함수 |
매개변수 |
구분 문자열 배열 | 구분점으로 사용될 문자열들의 집합 |
구분 옵션 | 구분된 문자열 배열을 후처리하는 옵션값 |
// public string[] Split (string[]? separator, StringSplitOptions options);
Console.WriteLine("Split(String[], StringSplitOptions)");
Console.WriteLine("StringSplitOptions.None : ");
Show(example.Split(stringSeparators, StringSplitOptions.None));
Console.WriteLine("StringSplitOptions.RemoveEmptyEntries : ");
Show(example.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries));
//Split(String[], StringSplitOptions)
//StringSplitOptions.None :
//<><ONE><><><><><><THREE><><><><><THREE>
//StringSplitOptions.RemoveEmptyEntries :
//<ONE><THREE><THREE>
Split(Char, Int32, StringSplitOptions)
함수명 | Split(Char, Int32, StringSplitOptions) | 구분 문자와 구분 옵션으로 출력 값을 설정하는 함수 |
매개변수 |
구분 문자 | 구분점으로 사용될 문자 |
최대 배열 길이 | 반환 배열의 최대 길이를 지정하여 그이상으로 구분하지 않음 | |
구분 옵션 | 구분된 문자열 배열을 후처리하는 옵션값 |
// public string[] Split (char separator, int count, StringSplitOptions options = System.StringSplitOptions.None);
Console.WriteLine("Split(Char, Int32, StringSplitOptions)");
Console.WriteLine("StringSplitOptions.None : ");
Show(example.Split(charSeparator, 2, StringSplitOptions.None));
Console.WriteLine("StringSplitOptions.RemoveEmptyEntries : ");
Show(example.Split(charSeparator, 2, StringSplitOptions.RemoveEmptyEntries));
//Split(Char, Int32, StringSplitOptions)
//StringSplitOptions.None :
//<><ONE,,TWO,,,THREE,,TWO,,THREE>
//StringSplitOptions.RemoveEmptyEntries :
//<ONE><TWO,,,THREE,,TWO,,THREE>
Split(Char[], Int32, StringSplitOptions)
함수명 | Split(Char[], Int32, StringSplitOptions) | 구분 문자와 구분 옵션으로 출력 값을 설정하는 함수 |
매개변수 |
구분 문자 배열 | 구분점으로 사용될 문자 배열 |
최대 배열 길이 | 반환 배열의 최대 길이를 지정하여 그이상으로 구분하지 않음 | |
구분 옵션 | 구분된 문자열 배열을 후처리하는 옵션값 |
// public string[] Split (char[]? separator, int count, StringSplitOptions options);
Console.WriteLine("Split(Char[], Int32, StringSplitOptions)");
Console.WriteLine("StringSplitOptions.None : ");
Show(example.Split(charSeparators, 2, StringSplitOptions.None));
Console.WriteLine("StringSplitOptions.RemoveEmptyEntries : ");
Show(example.Split(charSeparators, 2, StringSplitOptions.RemoveEmptyEntries));
//Split(Char[], Int32, StringSplitOptions)
//StringSplitOptions.None :
//<><ONE,,TWO,,,THREE,,TWO,,THREE>
//StringSplitOptions.RemoveEmptyEntries :
//<ONE><TWO,,,THREE,,TWO,,THREE>
Split(String, Int32, StringSplitOptions)
함수명 | Split(String, Int32, StringSplitOptions) | 구분 문자와 구분 옵션으로 출력 값을 설정하는 함수 |
매개변수 |
구분 문자열 | 구분점으로 사용될 문자열 |
최대 배열 길이 | 반환 배열의 최대 길이를 지정하여 그이상으로 구분하지 않음 | |
구분 옵션 | 구분된 문자열 배열을 후처리하는 옵션값 |
// public string[] Split (string? separator, int count, StringSplitOptions options = System.StringSplitOptions.None);
Console.WriteLine("Split(String, Int32, StringSplitOptions)");
Console.WriteLine("StringSplitOptions.None : ");
Show(example.Split(stringSeparator, 2, StringSplitOptions.None));
Console.WriteLine("StringSplitOptions.RemoveEmptyEntries : ");
Show(example.Split(stringSeparator, 2, StringSplitOptions.RemoveEmptyEntries));
//Split(String, Int32, StringSplitOptions)
//StringSplitOptions.None :
//<><ONE,,TWO,,,THREE,,TWO,,THREE>
//StringSplitOptions.RemoveEmptyEntries :
//<ONE><TWO,,,THREE,,TWO,,THREE>
Split(String[], Int32, StringSplitOptions)
함수명 | Split(String[], Int32, StringSplitOptions) | 구분 문자와 구분 옵션으로 출력 값을 설정하는 함수 |
매개변수 |
구분 문자열 배열 | 구분점으로 사용될 문자열 배열 집합 |
최대 배열 길이 | 반환 배열의 최대 길이를 지정하여 그이상으로 구분하지 않음 | |
구분 옵션 | 구분된 문자열 배열을 후처리하는 옵션값 |
// public string[] Split (string[]? separator, int count, StringSplitOptions options);
Console.WriteLine("Split(String[], Int32, StringSplitOptions)");
Console.WriteLine("StringSplitOptions.None : ");
Show(example.Split(stringSeparators, 2, StringSplitOptions.None));
Console.WriteLine("StringSplitOptions.RemoveEmptyEntries : ");
Show(example.Split(stringSeparators, 2, StringSplitOptions.RemoveEmptyEntries));
//Split(String[], Int32, StringSplitOptions)
//StringSplitOptions.None :
//<><ONE,,TWO,,,THREE,,TWO,,THREE>
//StringSplitOptions.RemoveEmptyEntries :
//<ONE><THREE,,TWO,,THREE>
번외
StringSplitOptions
Split 메서드 오버로드의 옵션을 지정하는 값으로 열거형 변수이다.
네임스페이스 | System |
어셈블리 | System.Runtime.dll |
상속 | Object > ValueType > Enum > StringSplitOptions |
특성 | FlagsAttribute |
필드명 | Enum 순서 | 설명 |
None | 0 | 문자열 분할의 기본 옵션으로 공백도 반환 배열에 포함한다. |
RemoveEmptyEntries | 1 | 반환 배열에 빈 문자열을 포함한 원소를 생략한다. |
TrimEntries | 2 | 반환 배열에 공백 문자를 자림한다. (.Net 5 이상 버전만 사용 가능) |
예제코드
using System;
public class HelloWorld
{
public static void Main(string[] args)
{
string example = ",ONE,,TWO,,,THREE,,TWO,,THREE";
char charSeparator = ',';
char[] charSeparators = new char[] { ',', ' ' };
string stringSeparator = ",";
string[] stringSeparators = new string[] { ",", "TWO" };;
// public string[] Split (params char[]? separator);
Console.WriteLine("Split(Char[])");
Show(example.Split(charSeparator));
//Split(Char[])
//<><ONE><><TWO><><><THREE><><TWO><><THREE>
Console.WriteLine("");
// public string[] Split (char separator, StringSplitOptions options = System.StringSplitOptions.None);
Console.WriteLine("Split(Char, StringSplitOptions)");
Console.WriteLine("StringSplitOptions.None : ");
Show(example.Split(charSeparator, StringSplitOptions.None));
Console.WriteLine("StringSplitOptions.RemoveEmptyEntries : ");
Show(example.Split(charSeparator, StringSplitOptions.RemoveEmptyEntries));
//Split(Char, StringSplitOptions)
//StringSplitOptions.None :
//<><ONE><><TWO><><><THREE><><TWO><><THREE>
//StringSplitOptions.RemoveEmptyEntries :
//<ONE><TWO><THREE><TWO><THREE>
Console.WriteLine("");
// public string[] Split (char[]? separator, int count);
Console.WriteLine("Split(Char[], Int32)");
Show(example.Split(charSeparators, 3));
//Split(Char[], Int32)
//<><ONE><,TWO,,,THREE,,TWO,,THREE>
Console.WriteLine("");
// public string[] Split (char[]? separator, StringSplitOptions options);
Console.WriteLine("Split(Char[], StringSplitOptions)");
Console.WriteLine("StringSplitOptions.None : ");
Show(example.Split(charSeparators, StringSplitOptions.None));
Console.WriteLine("StringSplitOptions.RemoveEmptyEntries : ");
Show(example.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries));
//Split(Char[], StringSplitOptions)
//StringSplitOptions.None :
//<><ONE><><TWO><><><THREE><><TWO><><THREE>
//StringSplitOptions.RemoveEmptyEntries :
//<ONE><TWO><THREE><TWO><THREE>
Console.WriteLine("");
// public string[] Split (string? separator, StringSplitOptions options = System.StringSplitOptions.None);
Console.WriteLine("Split(String, StringSplitOptions)");
Console.WriteLine("StringSplitOptions.None : ");
Show(example.Split(stringSeparator, StringSplitOptions.None));
Console.WriteLine("StringSplitOptions.RemoveEmptyEntries : ");
Show(example.Split(stringSeparator, StringSplitOptions.RemoveEmptyEntries));
//Split(String, StringSplitOptions)
//StringSplitOptions.None :
//<><ONE><><TWO><><><THREE><><TWO><><THREE>
//StringSplitOptions.RemoveEmptyEntries :
//<ONE><TWO><THREE><TWO><THREE>
Console.WriteLine("");
// public string[] Split (string[]? separator, StringSplitOptions options);
Console.WriteLine("Split(String[], StringSplitOptions)");
Console.WriteLine("StringSplitOptions.None : ");
Show(example.Split(stringSeparators, StringSplitOptions.None));
Console.WriteLine("StringSplitOptions.RemoveEmptyEntries : ");
Show(example.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries));
//Split(String[], StringSplitOptions)
//StringSplitOptions.None :
//<><ONE><><><><><><THREE><><><><><THREE>
//StringSplitOptions.RemoveEmptyEntries :
//<ONE><THREE><THREE>
Console.WriteLine("");
// public string[] Split (char separator, int count, StringSplitOptions options = System.StringSplitOptions.None);
Console.WriteLine("Split(Char, Int32, StringSplitOptions)");
Console.WriteLine("StringSplitOptions.None : ");
Show(example.Split(charSeparator, 2, StringSplitOptions.None));
Console.WriteLine("StringSplitOptions.RemoveEmptyEntries : ");
Show(example.Split(charSeparator, 2, StringSplitOptions.RemoveEmptyEntries));
//Split(Char, Int32, StringSplitOptions)
//StringSplitOptions.None :
//<><ONE,,TWO,,,THREE,,TWO,,THREE>
//StringSplitOptions.RemoveEmptyEntries :
//<ONE><TWO,,,THREE,,TWO,,THREE>
Console.WriteLine("");
// public string[] Split (char[]? separator, int count, StringSplitOptions options);
Console.WriteLine("Split(Char[], Int32, StringSplitOptions)");
Console.WriteLine("StringSplitOptions.None : ");
Show(example.Split(charSeparators, 2, StringSplitOptions.None));
Console.WriteLine("StringSplitOptions.RemoveEmptyEntries : ");
Show(example.Split(charSeparators, 2, StringSplitOptions.RemoveEmptyEntries));
//Split(Char[], Int32, StringSplitOptions)
//StringSplitOptions.None :
//<><ONE,,TWO,,,THREE,,TWO,,THREE>
//StringSplitOptions.RemoveEmptyEntries :
//<ONE><TWO,,,THREE,,TWO,,THREE>
Console.WriteLine("");
// public string[] Split (string? separator, int count, StringSplitOptions options = System.StringSplitOptions.None);
Console.WriteLine("Split(String, Int32, StringSplitOptions)");
Console.WriteLine("StringSplitOptions.None : ");
Show(example.Split(stringSeparator, 2, StringSplitOptions.None));
Console.WriteLine("StringSplitOptions.RemoveEmptyEntries : ");
Show(example.Split(stringSeparator, 2, StringSplitOptions.RemoveEmptyEntries));
//Split(String, Int32, StringSplitOptions)
//StringSplitOptions.None :
//<><ONE,,TWO,,,THREE,,TWO,,THREE>
//StringSplitOptions.RemoveEmptyEntries :
//<ONE><TWO,,,THREE,,TWO,,THREE>
Console.WriteLine("");
// public string[] Split (string[]? separator, int count, StringSplitOptions options);
Console.WriteLine("Split(String[], Int32, StringSplitOptions)");
Console.WriteLine("StringSplitOptions.None : ");
Show(example.Split(stringSeparators, 2, StringSplitOptions.None));
Console.WriteLine("StringSplitOptions.RemoveEmptyEntries : ");
Show(example.Split(stringSeparators, 2, StringSplitOptions.RemoveEmptyEntries));
//Split(String[], Int32, StringSplitOptions)
//StringSplitOptions.None :
//<><ONE,,TWO,,,THREE,,TWO,,THREE>
//StringSplitOptions.RemoveEmptyEntries :
//<ONE><THREE,,TWO,,THREE>
}
static void Show(string[] entries)
{
foreach (string entry in entries)
Console.Write($"<{entry}>");
Console.Write("\n");
}
}
Split(Char[])
<><ONE><><TWO><><><THREE><><TWO><><THREE>
Split(Char, StringSplitOptions)
StringSplitOptions.None :
<><ONE><><TWO><><><THREE><><TWO><><THREE>
StringSplitOptions.RemoveEmptyEntries :
<ONE><TWO><THREE><TWO><THREE>
Split(Char[], Int32)
<><ONE><,TWO,,,THREE,,TWO,,THREE>
Split(Char[], StringSplitOptions)
StringSplitOptions.None :
<><ONE><><TWO><><><THREE><><TWO><><THREE>
StringSplitOptions.RemoveEmptyEntries :
<ONE><TWO><THREE><TWO><THREE>
Split(String, StringSplitOptions)
StringSplitOptions.None :
<><ONE><><TWO><><><THREE><><TWO><><THREE>
StringSplitOptions.RemoveEmptyEntries :
<ONE><TWO><THREE><TWO><THREE>
Split(String[], StringSplitOptions)
StringSplitOptions.None :
<><ONE><><><><><><THREE><><><><><THREE>
StringSplitOptions.RemoveEmptyEntries :
<ONE><THREE><THREE>
Split(Char, Int32, StringSplitOptions)
StringSplitOptions.None :
<><ONE,,TWO,,,THREE,,TWO,,THREE>
StringSplitOptions.RemoveEmptyEntries :
<ONE><TWO,,,THREE,,TWO,,THREE>
Split(Char[], Int32, StringSplitOptions)
StringSplitOptions.None :
<><ONE,,TWO,,,THREE,,TWO,,THREE>
StringSplitOptions.RemoveEmptyEntries :
<ONE><TWO,,,THREE,,TWO,,THREE>
Split(String, Int32, StringSplitOptions)
StringSplitOptions.None :
<><ONE,,TWO,,,THREE,,TWO,,THREE>
StringSplitOptions.RemoveEmptyEntries :
<ONE><TWO,,,THREE,,TWO,,THREE>
Split(String[], Int32, StringSplitOptions)
StringSplitOptions.None :
<><ONE,,TWO,,,THREE,,TWO,,THREE>StringSplitOptions.RemoveEmptyEntries :
<ONE><THREE,,TWO,,THREE>
참고자료
String.Split 메서드 (System)
지정된 문자열 또는 유니코드 문자 배열의 요소로 구분된 이 인스턴스의 부분 문자열이 포함된 문자열 배열을 반환합니다.
learn.microsoft.com
StringSplitOptions 열거형 (System)
반환된 배열에서 빈 부분 문자열을 생략할지 또는 부분 문자열의 공백을 자를지 등 해당하는 Split 메서드 오버로드에 대한 옵션을 지정합니다.
learn.microsoft.com
'Computer Language > C#' 카테고리의 다른 글
[C#] String.Trim 메서드 - 공백제거 (0) | 2023.08.14 |
---|---|
[C#] String.Concat 메서드 - 문자열 연결 (0) | 2023.08.14 |
[C#] 문자열 자르기 (Substring, Split, Index, Remove, Regex) (0) | 2023.08.11 |
[C#] 문자열을 리스트/배열로 전환 (string to int list/array) (0) | 2023.08.09 |
[C#] Array - Max, Min, Sum, Average (최대값, 최소값, 합, 평균값) (0) | 2023.08.09 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 클래스
- 함수
- 초기화
- 할당
- 입출력
- malloc
- 레지스터
- 명령어
- 멀티스레드
- 상속
- dynamic_cast
- thread
- 메모리
- 알고리즘
- New
- 인터럽트
- 백준
- 프로세스
- CPU
- static_cast
- 스레드
- c++
- 컴파일
- 수학
- 구조
- 포인터
- 게임수학
- 크기
- 운영체제
- const
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함