Menu
Coddy logo textTech

Metoda contains

Część sekcji Podstawy ścieżki Swift w Coddy. Lekcja 76 z 86.

Podczas pracy z tablicami często trzeba sprawdzić, czy istnieje określona wartość, zanim wykona się jakąś czynność. Swift udostępnia metodę contains() dokładnie do tego celu. Zwraca ona true, jeśli element zostanie znaleziony, a w przeciwnym razie false.

let fruits = ["apple", "banana", "orange"]

if fruits.contains("banana") {
    print("We have bananas!")
}
// Mamy banany!

To znacznie czytelniejsze rozwiązanie niż ręczne przeszukiwanie tablicy za pomocą pętli. Ta metoda działa z tablicami dowolnego typu, niezależnie od tego, czy zawierają ciągi znaków, liczby, czy inne wartości:

let numbers = [10, 20, 30, 40, 50]

print(numbers.contains(30))  // true
print(numbers.contains(99))  // false

Częstym przypadkiem użycia jest sprawdzanie poprawności danych wprowadzonych przez użytkownika na podstawie listy dozwolonych wartości:

let validOptions = ["yes", "no", "maybe"]
let userInput = "yes"

if validOptions.contains(userInput) {
    print("Valid choice")
} else {
    print("Invalid choice")
}
// Poprawny wybór

Metoda contains() działa również z ciągami znaków i pozwala sprawdzić, czy podciąg występuje w dłuższym ciągu znaków:

let message = "Hello, Swift!"
print(message.contains("Swift"))  // true
challenge icon

Wyzwanie

Łatwy

Otrzymasz dwa wiersze danych wejściowych:

  1. Lista dozwolonych nazw użytkowników rozdzielonych przecinkami (np. admin,user,guest,moderator)
  2. Nazwa użytkownika do sprawdzenia

Sprawdź, czy nazwa użytkownika znajduje się na liście dozwolonych. Jeśli tak, wypisz Access granted. Jeśli nie, wypisz Access denied.

Kroki:

  1. Wczytaj listę rozdzielonych przecinkami nazw użytkowników i podziel ją na tablicę ciągów znaków
  2. Wczytaj nazwę użytkownika do sprawdzenia
  3. Użyj metody contains(), aby ustalić, czy nazwa użytkownika znajduje się na liście dozwolonych
  4. Wypisz odpowiedni komunikat w zależności od wyniku

Podpowiedź: Użyj components(separatedBy:), aby podzielić ciąg znaków na tablicę. Na przykład:

let text = "a,b,c"
let parts = text.components(separatedBy: ",")

Spróbuj swoich sił

// Wczytaj listę dozwolonych nazw użytkowników rozdzielonych przecinkami
let allowedList = readLine()!

// Wczytaj nazwę użytkownika do sprawdzenia
let username = readLine()!

// TODO: Napisz swój kod poniżej
// 1. Podziel allowedList na tablicę za pomocą components(separatedBy:)
// 2. Użyj contains(), aby sprawdzić, czy username znajduje się w tablicy
// 3. Wypisz "Access granted" lub "Access denied" w zależności od wyniku
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Edytor online Swift