Contains 메서드
Coddy Swift 여정의 기초 섹션에 포함된 레슨 — 86개 중 76번째.
배열을 작업할 때, 동작을 수행하기 전에 특정 값이 존재하는지 확인해야 할 때가 많습니다. Swift는 바로 이러한 목적을 위해 contains() 메서드를 제공합니다—요소를 찾으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
let fruits = ["apple", "banana", "orange"]
if fruits.contains("banana") {
print("We have bananas!")
}
// 바나나가 있습니다!이것은 배열을 수동으로 검색하기 위해 루프를 작성하는 것보다 훨씬 깔끔합니다. 이 메서드는 문자열, 숫자 또는 기타 값이 포함되어 있는지 여부에 관계없이 모든 유형의 배열에서 작동합니다:
let numbers = [10, 20, 30, 40, 50]
print(numbers.contains(30)) // true
print(numbers.contains(99)) // false일반적인 사용 사례는 허용된 값 목록과 대조하여 사용자 입력을 검증하는 것입니다:
let validOptions = ["yes", "no", "maybe"]
let userInput = "yes"
if validOptions.contains(userInput) {
print("Valid choice")
} else {
print("Invalid choice")
}
// 유효한 선택contains() 메서드는 문자열에서도 작동하여 더 큰 문자열 내에 부분 문자열이 존재하는지 확인합니다:
let message = "Hello, Swift!"
print(message.contains("Swift")) // true챌린지
쉬움두 줄의 입력을 받게 됩니다:
- 쉼표로 구분된 허용된 사용자 이름 목록 (예:
admin,user,guest,moderator) - 확인할 사용자 이름
사용자 이름이 허용된 목록에 존재하는지 확인하세요. 존재한다면, Access granted를 출력하세요. 존재하지 않는다면, Access denied를 출력하세요.
단계:
- 쉼표로 구분된 목록을 읽고 이를 문자열 배열로 분할합니다.
- 확인할 사용자 이름을 읽습니다.
contains()메서드를 사용하여 사용자 이름이 허용된 목록에 있는지 확인합니다.- 결과에 따라 적절한 메시지를 출력합니다.
힌트: 문자열을 배열로 분할하려면 components(separatedBy:)를 사용하세요. 예를 들어:
let text = "a,b,c"
let parts = text.components(separatedBy: ",")치트 시트
contains() 메서드는 배열에 특정 값이 존재하는지 확인하여, 값이 있으면 true를 반환하고 없으면 false를 반환합니다:
let fruits = ["apple", "banana", "orange"]
if fruits.contains("banana") {
print("We have bananas!")
}
// We have bananas!이 메서드는 모든 배열 타입에서 작동합니다:
let numbers = [10, 20, 30, 40, 50]
print(numbers.contains(30)) // true
print(numbers.contains(99)) // false입력값을 검증할 때 흔히 사용되는 사례입니다:
let validOptions = ["yes", "no", "maybe"]
let userInput = "yes"
if validOptions.contains(userInput) {
print("Valid choice")
} else {
print("Invalid choice")
}
// Valid choicecontains() 메서드는 문자열에서 부분 문자열(substring)이 포함되어 있는지 확인하는 데에도 사용할 수 있습니다:
let message = "Hello, Swift!"
print(message.contains("Swift")) // true문자열을 배열로 분리하려면 components(separatedBy:)를 사용하세요:
let text = "a,b,c"
let parts = text.components(separatedBy: ",")직접 해보기
// 쉼표로 구분된 허용된 사용자 이름 목록을 읽습니다
let allowedList = readLine()!
// 확인할 사용자 이름을 읽습니다
let username = readLine()!
// TODO: 아래에 코드를 작성하세요
// 1. components(separatedBy:)를 사용하여 allowedList를 배열로 분할합니다
// 2. contains()를 사용하여 username이 배열에 있는지 확인합니다
// 3. 결과에 따라 "Access granted" 또는 "Access denied"를 출력합니다이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.