C#의 String.Contains() 메서드는 지정한 부분 문자열(하위 문자열)이 현재 문자열 안에 존재하는지를 나타내는 값을 반환합니다. 문자열에 특정 텍스트가 포함되어 있는지 검사할 때 가장 널리 사용되는 메서드 중 하나입니다.
문법(Syntax)
public bool Contains (string val);
여기서 val은 현재 문자열 내에서 검색할 부분 문자열을 의미합니다. 부분 문자열이 존재하면 true, 존재하지 않으면 false를 반환합니다.
예제 1: Contains() 기본 사용법
using System;
public class Demo {
public static void Main(String[] args) {
string str1 = "Akon";
string str2 = "Ak";
Console.WriteLine("String 1 = "+str1);
Console.WriteLine("HashCode of String 1 = "+str1.GetHashCode());
Console.WriteLine("String 2 = "+str2);
Console.WriteLine("HashCode of String 2 = "+str2.GetHashCode());
Console.WriteLine("String 1 is equal to String 2: {0}", str1.Equals(str2));
Console.WriteLine("Does String 1 has String 2 = "+str1.Contains(str2));
}
}실행 결과
String 1 = Akon HashCode of String 1 = 416613838 String 2 = Ak HashCode of String 2 = -839927841 String 1 is equal to String 2: False Does String 1 has String 2 = True
위 예제에서 str1("Akon")은 str2("Ak")와 같지 않지만(Equals 결과 False), "Ak"라는 부분 문자열을 포함하고 있으므로 Contains()는 True를 반환합니다.
예제 2: 조건문과 함께 활용하기
using System;
public class Demo {
public static void Main(String[] args) {
string str1 = "Jacob";
string str2 = "John";
Console.WriteLine("String 1 = "+str1);
Console.WriteLine("HashCode of String 1 = "+str1.GetHashCode());
Console.WriteLine("String 2 = "+str2);
Console.WriteLine("HashCode of String 2 = "+str2.GetHashCode());
bool res = str1.Contains(str2);
if (res)
Console.WriteLine("Found!");
else
Console.WriteLine("Not found!");
}
}실행 결과
String 1 = Jacob HashCode of String 1 = -790718923 String 2 = John HashCode of String 2 = -1505962600 Not found!
이 예제에서는 Contains()의 반환값을 bool 변수에 저장한 뒤, if-else 문으로 분기 처리하는 방법을 보여줍니다. "Jacob"에는 "John"이 포함되어 있지 않으므로 "Not found!"가 출력됩니다.
정리
String.Contains()는 대소문자를 구분하여 부분 문자열 포함 여부를 검사합니다.- 반환 타입은
bool이며, 포함 시true, 미포함 시false를 반환합니다. - .NET Core 2.1 이상에서는
StringComparison옵션을 매개변수로 받는 오버로드도 제공되어 대소문자 무시 검색 등이 가능합니다.