Wyszukiwanie w ciągach znaków
Część sekcji Logika i przepływ programu ścieżki Swift w Coddy. Lekcja 3 z 56.
Trzy szybkie sposoby sprawdzenia, czy podciąg znajduje się w innym ciągu:
let email = "alice@coddy.tech"
print(email.contains("@")) // true
print(email.hasPrefix("alice")) // true
print(email.hasSuffix(".tech")) // truecontains przyjmuje dowolny podciąg, podczas gdy hasPrefix i hasSuffix sprawdzają tylko początek lub koniec. Wszystkie są wrażliwe na wielkość liter, więc najpierw zamień ciąg na małe litery, jeśli ma to znaczenie.
Połącz je z !, aby szybko sprawdzić, czy czegoś „brakuje”:
if !email.contains("@") {
print("not a valid email")
}Wyzwanie
ŁatwyWczytaj jeden wiersz danych wejściowych. Sprawdź, czy jest to prosty adres e-mail, weryfikując wszystkie poniższe warunki:
- Zawiera dokładnie jeden znak
@(użyjfiltericountdla znaków) - Nie zaczyna się ani nie kończy znakiem
@ - Kończy się na
.tech,.comlub.org(bez rozróżniania wielkości liter)
Wypisz valid, jeśli wszystkie warunki są spełnione, w przeciwnym razie invalid. Porównuj z wersją danych wejściowych zamienioną na małe litery.
Dla danych wejściowych alice@CODDY.TECH wynikiem jest valid.
Spróbuj swoich sił
let line = readLine()!
// TODO: sprawdź, czy występuje dokładnie jeden znak '@', czy nie znajduje się na początku ani na końcu oraz czy sufiks należy do [.tech .com .org]
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ programu
1Dogłębnie o ciągach znaków
Liczba i indeksyWielkość liter i usuwanie białych znakówWyszukiwanie w ciągach znakówDzielenie i łączenieZastępowanie podciągówPodsumowanie — sprawdzanie nazwy użytkownika4Zbiory
Tworzenie zbiorówSuma i część wspólnaRóżnica i różnica symetrycznaPodzbiór i nadzbiórPowtórka — filtr tagów7Projekt – Śledzenie nawyków
Przegląd projektuOznacz jako wykonane10Projekt — silnik quizów
Przegląd projektuZadawanie pytań2Zakresy i kroki
Zakresy domknięte i półotwarteKrokMetody zakresówZakresy w instrukcji switchPowtórka — siatka kalendarza5Funkcje wyższego rzędu, część 1
MapFilterReduceŁączenie map, filter i reducePodsumowanie – statystyki słówPoćwicz samodzielnie: Edytor online Swift