항상 문자열의 함수는 자주 사용하지 않거나 경험이 적으면 까먹는 경우가 종종 있습니다.
매번 서치 해서 보는 것도 좋지만.. 따로 정리를 해두면 어떨까 해서 자료들을 모아 정리해보겠습니다.
C#에서는 string에 대해서 여러 가지 다양한 문자열 찾기 함수를 지원하고 있습니다.
# IndexOf() : 현재 문자열에서 찾고자 하는 지정된 문자 혹은 문자열의 위치를 앞에서부터 찾아서 반환합니다.
해당하는 부분이 없으면(존재하지 않으면) -1을 리턴합니다.
중요한 점은 맨 처음 발견되는(시작되는) 인덱스를 보고한다는 점입니다.
string str = "Hello, World!";
int a = str.IndexOf('W'); // 7
int b = str.IndexOf("rld!"); // 9
int c = str.IndexOf("zee"); // -1
맨 처음이 싫다면 직접 인덱스를 지정해서 그 부분부터 탐색할 수 도 있습니다.
IndexOf(String, Int32, Int32)
public int IndexOf (string str, int startIndex, int count);
str : 검색할 문자열
startIndex : 검색을 시작할 위치
count : 검사할 문자 위치의 수
# LastIndexOf() : 현재 문자열에서 찾고자 하는 지정된 문자 혹은 문자열의 위치를 뒤에서부터 찾아서 반환합니다.
맨 마지막부터 훓는 방식도 있습니다.
재밌는 점은 결과가 같습니다. 우리가 찾고자 하는 시작 인덱스를 반환하기 때문입니다.
string str = "Hello, World!";
int a = str.LastIndexOf('W'); // 7
int b = str.LastIndexOf("rld!"); // 9
int c = str.LastIndexOf("zee"); // -1
# StartsWith() : 현재 문자열이 지정된 문자열로 시작하는지를 평가합니다.
여기서 평가는 있으면 true고, 없으면 false입니다.
헷갈릴 수 있는데 현재 문자열로 시작하지 않으면 false입니다.
string str = "Hello, World!";
Console.WriteLine($"StartsWith 'Hello' : {str.StartsWith("Hello")}"); // true
Console.WriteLine($"StartsWith 'World!' : {str.StartsWith("World!")}"); // false
# EndsWith() : 현재 문자열이 지정된 문자열로 끝나는지를 평가합니다.
string str = "Hello, World!";
Console.WriteLine($"EndsWith 'Hello' : {str.EndsWith("Hello")}"); // false
Console.WriteLine($"EndsWith 'World!' : {str.EndsWith("World!")}"); // true
# Contains() : 현재 문자열이 지정된 문자열을 포함하는지를 평가합니다.
많이 쓰이는 메서드입니다. 포함하면 true
string str = "Hello, World!";
Console.WriteLine(str.Contains(",")); // true
Console.WriteLine(str.Contains(", W")); // true
Console.WriteLine(str.Contains("World!!")); // false
Console.WriteLine(str.Contains("llo")); // true
# Replace() : 현재 문자열에서 지정된 문자열로 대체되며, 대체된 새 문자열을 리턴합니다.
많이 쓰는 메서드입니다. (대체된다 라고 생각하면 편합니다.)
string str = "Hello, World!";
string replaceStr = str.Replace("o", "z");
Console.WriteLine($"old:{str}"); // old:Hello, World!
Console.WriteLine($"new:{replaceStr}"); // new:Hellz, Wzrld!
[ 정리하기 ]
위의 6가지 메서드를 살펴봤습니다.
공통점은 문자열에서 "내가 원하는 부분"을 찾아주는 기능뿐만 아니라 평가나 대체도 가능하다는 점입니다.
'CS > C#' 카테고리의 다른 글
[C#] 생성자와 소멸자 (0) | 2021.12.11 |
---|---|
[C#] 클래스 (0) | 2021.12.11 |
[C#] var (0) | 2021.12.10 |
[C#] foreach (0) | 2021.12.05 |
[C#] null 병합 연산자, ?? (0) | 2021.12.05 |