Swift에서 하나의 문자열이 다른 문자열을 포함하고 있는지 확인하려면 두 개의 서로 다른 문자열이 필요합니다. 하나는 검색 대상이 되는 전체 문자열이고, 다른 하나는 포함 여부를 확인할 문자열입니다.
예를 들어 확인할 문자열이 "point"이고, 전체 문자열은 "TutorialsPoint", 또 다른 전체 문자열은 "one two three"라고 가정해 보겠습니다. 이 두 문자열을 플레이그라운드(Playground)에서 직접 테스트해 보겠습니다.
포함 여부를 확인하는 방법은 크게 두 가지가 있습니다. 먼저 세 개의 문자열 변수를 생성해 보겠습니다.
var CompleteStr1 = "Tutorials point" var completeStr2 = "one two three" var stringToCheck = "point"
방법 1: contains(_:) 메서드 사용
첫 번째 방법은 String 타입에서 제공하는 contains(_:) 메서드를 사용하는 것입니다. 이 메서드는 해당 문자열이 존재하면 true를 반환하고, 존재하지 않으면 false를 반환합니다.
if CompleteStr1.contains(stringToCheck) {
print("contains")
} else {
print("does not contain")
}방법 2: range(of:) 메서드 사용
두 번째 방법은 range(of:) 메서드를 사용하여 문자열의 범위(Range)를 확인하는 것입니다. 반환된 범위가 nil이라면 찾고자 하는 문자열이 존재하지 않는다는 의미이고, nil이 아니라면 해당 문자열이 존재한다는 뜻입니다.
if completeStr2.range(of: stringToCheck) != nil {
print("contains")
} else {
print("does not contain")
}위 코드를 실행하면 아래와 같은 결과가 출력됩니다.

추가 예제
같은 방식으로 특수문자가 포함된 문자열로도 테스트해 보겠습니다.
var Str1 = "12312$$33@"
var Str2 = "%%"
var Str3 = "$$"
if Str1.contains(Str2) {
print("contains")
} else {
print("does not contain")
}
if Str1.range(of: Str3) != nil {
print("contains")
} else {
print("does not contain")
}실행 결과는 아래와 같습니다.

정리하면, Swift에서 문자열 포함 여부를 확인할 때는 간단한 불리언 값이 필요한 경우 contains(_:)를, 찾은 문자열의 위치 정보까지 필요한 경우 range(of:)를 사용하는 것이 좋습니다. 상황에 맞는 메서드를 선택하면 더욱 깔끔하고 효율적인 코드를 작성할 수 있습니다.