[Swift] 문자열에서 원하는 문자 찾기 - hasPrefix, hasSuffix, contains

Kio·2021년 12월 19일
1

Swift

목록 보기
6/14
post-thumbnail

안녕하세요! Kio입니다 👻

Swift에서 사용되는 String 관련하여 부분 문자열 혹은 문자 를 찾을 때 유용하게 사용할 수 있는 아래 3가지에 대해 글을 써보고자 합니다.

  • hasPrefix(_:)
  • hasSuffix(_:)
  • contains(_:)




hasPrefix

Returns a Boolean value indicating whether the string begins with the specified prefix.

String(문자열)이 지정된 접두사로 시작하는지 여부를 Boolean 값으로 반환합니다.


선언 (Declaration)

func hasPrefix(_ prefix: String) -> Bool

매개변수 (Parameters)

prefix
  • 이 문자열에 대해 테스트 할 수 있는 접두사이다.

리턴 타입 (Return Value)

  • 테스트할 문자열이 prefix에 넣은 접두사로 시작하면 true 를 반환하고, 그렇지 않으면 false 를 반환한다.

예시 (Discussion)

다음과 같은 문자열이 있습니다.

let cafe = "Café du Monde"
let magazine = "Car and Driver"

cafe, magazinehasPrefix 로 연습해볼까요?

print(cafe.hasPrefix("café"))
// false - 소문자 c로 시작했기 때문입니다.

print(cafe.hasPrefix("Café"))
// true

print(magazine.hasPrefix("car"))
// false - 소문자 c로 시작했기 때문입니다.

print(magazine.hasPrefix("Car"))
// true

이처럼 대소문자를 구별하기 때문에, 위와 같은 결과를 반환합니다.




hasSuffix

Returns a Boolean value indicating whether the string ends with the specified suffix.

String(문자열)이 지정된 접미사로 끝나는지 여부를 Boolean 값으로 반환합니다.


선언 (Declaration)

func hasSuffix(_ suffix: String) -> Bool

매개변수 (Parameters)

suffix
  • 이 문자열에 대해 테스트 할 수 있는 접미사입니다.

리턴 타입 (Return Value)

  • 테스트할 문자열이 ssffix에 넣은 접미사로 끝나면 true 를 반환하고, 그렇지 않으면 false 를 반환한다.

예시 (Discussion)

다음과 같은 문자열이 있습니다.

let plans = "Let's meet at the café"
let amongUs = "I saw Sole kill someone👀"

이번에는 plans, amongshasSuffix로 연습해볼까요?

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도 대소문자를 구별하기 때문에 위와 같은 결과를 반환합니다.




contains

Returns a Boolean value indicating whether the sequence contains the given element.

sequence(수열)에 지정된 요소가 포함되어 있는지 여부를 Boolean 값으로 반환합니다.


선언 (Declaration)

func contains(_ element: Element) -> Bool

매개변수 (Parameters)

element
  • 수열에서 찾을 요소입니다.

리턴 타입 (Return Value)

  • 찾고자 하는 요소(element)수열(sequence)에 있다면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.

예시 (Discussion)

다음과 같은 배열이 있다고 가정해보겠습니다 👻

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 삼촌 명언을 가져와봤습니다.

containscome, comes 가 둘 다 true가 나온 것처럼
문자열에 해당 문자가 포함되어 있는지를 확인할 때 사용가능합니다.




마치면서

부분 문자열 혹은 문자를 찾을 때 Boolean 값을 반환하는 hasPrefix, hasSuffix, contains에 대해 알아보았습니다. Keypoint로 아래의 사항을 기억해두면 좋을 것 같네요 🥰

  • hasPrefix(_:) - 접두사
  • hasSuffix(_:) - 접미사
  • contains(_:) - 요소




참고

hasPrefix(_:) - developer.apple
hasSuffix(_:) - developer.apple
contains(_:) - developer.apple




잘못된 정보가 있으면 언제든 코멘트 부탁드립니다 👻

profile
Someday_iOS_Dev

2개의 댓글

comment-user-thumbnail
2021년 12월 20일

오호! hasPrefix(:), hasSuffix(:) 는 대소문자를 구분한다고 해서 어라? 그럼 contains(_:)는 대소문자 구분 안하나? 했는데 역시나 안되는군요ㅎㅎ🤭 (와중에 반가운 이름들👀)

답글 달기
comment-user-thumbnail
2022년 11월 14일

잘읽고갑니다

답글 달기