Menu
Coddy logo textTech

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
challenge icon

챌린지

쉬움

두 줄의 입력을 받게 됩니다:

  1. 쉼표로 구분된 허용된 사용자 이름 목록 (예: admin,user,guest,moderator)
  2. 확인할 사용자 이름

사용자 이름이 허용된 목록에 존재하는지 확인하세요. 존재한다면, Access granted를 출력하세요. 존재하지 않는다면, Access denied를 출력하세요.

단계:

  1. 쉼표로 구분된 목록을 읽고 이를 문자열 배열로 분할합니다.
  2. 확인할 사용자 이름을 읽습니다.
  3. contains() 메서드를 사용하여 사용자 이름이 허용된 목록에 있는지 확인합니다.
  4. 결과에 따라 적절한 메시지를 출력합니다.

힌트: 문자열을 배열로 분할하려면 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 choice

contains() 메서드는 문자열에서 부분 문자열(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"를 출력합니다
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨