[C#] 문자열 자르기

프로그래밍 알고리즘 문제를 풀 때 문자열과 관련된 문제가 많이 있었습니다.

이때 내가 사용하는 기능들을 정리해보려고 합니다.

1. 하위 문자열(int 인덱스)

사용자가 입력한 위치 뒤의 문자열을 반환합니다.

string str = "0123456789";
// 0부터 시작이므로 5번째가 아닌 6번째 위치한 5 이후의 값을 리턴 
string str2 = str.Substring(5);

Console.WriteLine(str2);
// 56789 를 리턴

2. 하위 문자열(int 인덱스, int 길이)

사용자가 입력한 위치부터 위치 수까지 문자열을 반환합니다.

string str = "0123456789";

// 5번째 위치 부터 5 + 3인 8번째까지만 리턴
string str3 = str.Substring(5, 3);

Console.WriteLine("str3 : " + str3);
// 567 리턴


`

분할 기능

분할 기능은 사용자가 입력한 문자를 제외하는 기능입니다.

새로운 문자열을 생성하는 대신 입력 부분까지 하나씩 문자열 배열에 문자열을 삽입합니다.

1. 분할(str 문자열)

string str = "A B C D E F G H";

string() str2 = str.Split(" ");
// 공백을 제외시켰을때의 문자열을 str2 배열에 넣어준다.


분할

2. 분할(문자열 str, int 카운트)

위와 같이 입력 부분을 지우지만 배열의 수를 사용자 정의할 수 있습니다.

string str = "A B C D E F G H";

string() str2 = str.Split(" ", 3);
// 배열의 길이를 3으로 지정


3. 여러 글자로 자르고 싶을 때

string() splitstr = { " ", ",", "@", "#" };
// 배열을 만들어 지우고싶은 문자 입력

string str = "A@B C,D E#F@G,H";

string() str2 = str.Split(splitstr, StringSplitOptions.None);


배열로 주어진 문자열은 배열의 번호를 나타낼 수도 있습니다.

string() splitstr = { " ", ",", "@", "#" };

string str = "A@B C,D E#F@G,H";

string() str2 = str.Split(splitstr, 2, StringSplitOptions.None);
// 배열의 크기를 2로 지정


배열로 사용할 경우 끝에 StringSplitOptions가 추가되며 세 가지 유형의 옵션이 있습니다.

없음 – 기본값

RemoveEmptyEntries – 모든 공백 요소를 제거합니다.

TrimEntries – 결과의 각 하위 문자열에서 공백을 제거합니다.

이 필드는 .NET 5 이상 버전에서만 사용할 수 있습니다.

(마이크로소프트 API에서 발췌)

https://learn.microsoft.com/en-us/dotnet/api/system.stringsplitoptions?view=net-7.0