본문 바로가기
C#/string

[C#] string.Split() + StringSplitOptions

by 스누누피 2024. 7. 31.
string의 메서드 중 split에 대해 좀 더 자세히 다루기 위해 따로 기록한다.

 

Split(char[]|string[], *count, *option)

기준 문자 기준으로 문자열을 잘라 문자열로 반환하는 string 메서드

*은 생략이 가능한 매개변수

 

매개변수

- char[]|string[] : 기준 문자|기준 문자열

문자열을 자를때 기준이 되는 문자열, 기준이 한개면 사용하면 배열이 아니어도 상관없다.

 

- *count : 반환할 부분 문자열 최대 수

해당 수 만큼만 문자열을 잘라 준다.

 

- *option : 빈 문자열 옵션

StringSplitOptions의 필드

None: 문자열을 분리할 때 기본 옵션을 사용한다.

RemoveEmptyEntries: 문자열을 분리할 때 빈 문자열은 제거한다

TrimEntries: 문자열을 분리할 때 모든 문자열의 공백을 제거해준다. ※.NET 5 이상 버전에서만 사용할 수 있다.


📑 예시

string[] splitStr = new string[] { };
string str = "/ /i//  love/  /you  ";
char[] separators = new char[] {'/'};

// 1)
splitStr = str.Split(separators);
Console.WriteLine(string.Join("," , splitStr)); // [, ,i,,  love,  ,you  ]

// 2)
splitStr = str.Split(separators, 4);
Console.WriteLine(string.Join(",", splitStr)); // [, ,i,/  love/  /you  ]

// 3)
splitStr = str.Split(separators, StringSplitOptions.RemoveEmptyEntries);
Console.WriteLine(string.Join(",", splitStr)); // [ ,i,  love,  ,you  ]

// 4)
splitStr = str.Split(separators, StringSplitOptions.TrimEntries);
Console.WriteLine(string.Join(",", splitStr)); // [,,i,,love,,you]

// 5)
splitStr = str.Split(separators, StringSplitOptions.RemoveEmptyEntries|StringSplitOptions.TrimEntries);
Console.WriteLine(string.Join(",", splitStr)); // [i,love,you]

 

🔍 해설

전부 /을 기준으로 split를 사용하였다.

 

1번 예시는 기준 문자만 존재함으로 /를 기준으로 자른 [, ,i,,  love,  ,you  ]가 되었다.

 

2번 예시는 기준문자와 문자열의 최대 수를 4로 지정했기 때문에 [, ,i,/  love/  /you  ]로 총 4개의 요소를 가진 배열로 반환되었다.

 

3번 예시는 기준문자와 StringSplitOptions.RemoveEmptyEntries 옵션을 사용했기 때문에 빈 문자열은 모두 제거된 [ ,i,  love,  ,you  ]가 되었다. " "은 스페이스 하나가 들어가 있으므로 빈 문자열이 아니다.

 

4번 예시는 기준문자와 StringSplitOptions.TrimEntries 옵션을 사용했기 때문에 모든 문자열에 공백을 제거해 [,,i,,love,,you]가 된다.

 

5번 예시는 기준문자와 두가지 옵션을 전부 사용해 모든 문자열의 공백을 제거한 후 빈문자열을 제거해 [i,love,you]가 된다.


참고 사이트

StringSplitOptions 열거형 : Microsoft Learn

https://learn.microsoft.com/ko-kr/dotnet/api/system.stringsplitoptions?view=net-8.0

 

String.Split 메서드 : Microsoft Learn

https://learn.microsoft.com/ko-kr/dotnet/api/system.string.split?view=net-8.0

 

관련 포스팅

 

[C# 문법] string 메서드 모음

최근 수정: 2024.07.31string 메서드 내용 중 새로 알게되거나 사용했던 메서드들 기록하는 곳입니다. 주요 메서드Substring([시작위치], [문자열길이]): string의 시작위치부터 문자열 길이만큼 추출해준

twd0622.tistory.com