프로그래밍 알고리즘 문제를 풀 때 문자열과 관련된 문제가 많이 있었습니다.
이때 내가 사용하는 기능들을 정리해보려고 합니다.
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