안녕하세요!
Kio
입니다 👻
Swift에서 사용되는 String 관련하여부분 문자열
혹은문자
를 찾을 때 유용하게 사용할 수 있는 아래 3가지에 대해 글을 써보고자 합니다.
- hasPrefix(_:)
- hasSuffix(_:)
- contains(_:)
Returns a Boolean value indicating whether the string begins with the specified prefix.
String(문자열)
이 지정된 접두사로 시작하는지 여부를 Boolean 값으로 반환합니다.
func hasPrefix(_ prefix: String) -> Bool
prefix
prefix
에 넣은 접두사로 시작하면 true
를 반환하고, 그렇지 않으면 false
를 반환한다.다음과 같은 문자열이 있습니다.
let cafe = "Café du Monde"
let magazine = "Car and Driver"
cafe
,magazine
을hasPrefix
로 연습해볼까요?
print(cafe.hasPrefix("café"))
// false - 소문자 c로 시작했기 때문입니다.
print(cafe.hasPrefix("Café"))
// true
print(magazine.hasPrefix("car"))
// false - 소문자 c로 시작했기 때문입니다.
print(magazine.hasPrefix("Car"))
// true
이처럼 대소문자를 구별하기 때문에, 위와 같은 결과를 반환합니다.
Returns a Boolean value indicating whether the string ends with the specified suffix.
String(문자열)
이 지정된 접미사로 끝나는지 여부를 Boolean 값으로 반환합니다.
func hasSuffix(_ suffix: String) -> Bool
suffix
ssffix
에 넣은 접미사로 끝나면 true
를 반환하고, 그렇지 않으면 false
를 반환한다.다음과 같은 문자열이 있습니다.
let plans = "Let's meet at the café"
let amongUs = "I saw Sole kill someone👀"
이번에는
plans
,amongs
를hasSuffix
로 연습해볼까요?
print(plans.hasSuffix("Café"))
// false - 대문자 C이기 때문입니다.
print(plans.hasSuffix("café"))
// true
print(amongUs.hasSuffix("👀"))
// true
print(amongUs.hasSuffix("👻"))
// false - 👀 가 아니기 때문입니다.
print(amongUs.hasSuffix("someone👀"))
// true
print(amongUs.hasSuffix("Someone👀"))
// false - 대문자 S이기 때문입니다.
print(amongUs.hasSuffix("I saw Sole kill someone👀"))
// true
예시가 많으니 이해가 어렵지 않죠?
hasPrefix
처럼hasSuffix
도 대소문자를 구별하기 때문에 위와 같은 결과를 반환합니다.
Returns a Boolean value indicating whether the sequence contains the given element.
sequence(수열)
에 지정된 요소가 포함되어 있는지 여부를 Boolean 값으로 반환합니다.
func contains(_ element: Element) -> Bool
element
요소(element)
가 수열(sequence)
에 있다면 true
를 반환하고, 그렇지 않으면 false
를 반환합니다.다음과 같은 배열이 있다고 가정해보겠습니다 👻
let friends = ["Sole", "Ian", "Alan", "Daniel"]
friends
배열에 친구 이름이 포함되어 있는지 알아보고 싶다면 어떻게 할 수 있을까요?
print(friends.contains("Sole"))
// true
print(friends.contains("Ian"))
// true
print(friends.contains("Alan"))
// true
print(friends.contains("Daniel"))
// true
print(friends.contains("Kio"))
// false - Kio는 친구가 아님을 알 수 있네요 😱
contains
는 배열 뿐만 아니라 문자열에서도 가능합니다.
let benSaying = "With great power comes great responsibility"
print(benSaying.contains("power"))
// true
print(benSaying.contains("come"))
// true - come이 포함되어 있다는 말이죠.
print(benSaying.contains("comes"))
// true - comes도 포함되어 있구요.
print(benSaying.contains("x"))
// false - x라는 알파벳은 없네요.
"큰 힘에는 큰 책임이 따른다."
스파이더맨의 Ben 삼촌 명언을 가져와봤습니다.
contains
는come
,comes
가 둘 다 true가 나온 것처럼
문자열에 해당 문자가 포함되어 있는지를 확인할 때 사용가능합니다.
부분 문자열
혹은문자
를 찾을 때 Boolean 값을 반환하는hasPrefix
,hasSuffix
,contains
에 대해 알아보았습니다. Keypoint로 아래의 사항을 기억해두면 좋을 것 같네요 🥰
- hasPrefix(_:) - 접두사
- hasSuffix(_:) - 접미사
- contains(_:) - 요소
hasPrefix(_:) - developer.apple
hasSuffix(_:) - developer.apple
contains(_:) - developer.apple
잘못된 정보가 있으면 언제든 코멘트 부탁드립니다 👻
오호! hasPrefix(:), hasSuffix(:) 는 대소문자를 구분한다고 해서 어라? 그럼 contains(_:)는 대소문자 구분 안하나? 했는데 역시나 안되는군요ㅎㅎ🤭 (와중에 반가운 이름들👀)