CS/C#

[C#] 문자열 찾기 함수들

Mirab 2021. 12. 10. 01:38

항상 문자열의 함수는 자주 사용하지 않거나 경험이 적으면 까먹는 경우가 종종 있습니다.

매번 서치 해서 보는 것도 좋지만.. 따로 정리를 해두면 어떨까 해서 자료들을 모아 정리해보겠습니다.

 

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