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' 카테고리의 다른 글
[C#] int에서 string로 변환 (int to string) (0) | 2024.11.04 |
---|---|
[C#] char[] 에서 string로 변환 (char[] to string) (0) | 2024.08.27 |
[C#] string 메서드 모음 (0) | 2024.07.18 |