Ricerca nelle stringhe
Fa parte della sezione Logica e flusso del percorso Swift di Coddy. Lezione 3 di 56.
Tre controlli rapidi per verificare se una sottostringa è contenuta in un'altra:
let email = "alice@coddy.tech"
print(email.contains("@")) // true
print(email.hasPrefix("alice")) // true
print(email.hasSuffix(".tech")) // truecontains accetta qualsiasi sottostringa, mentre hasPrefix e hasSuffix controllano solo l'inizio o la fine. Sono tutti sensibili alle maiuscole e alle minuscole, quindi converti prima la stringa in minuscolo, se è importante.
Combinali con ! per un rapido test di «mancanza»:
if !email.contains("@") {
print("not a valid email")
}Sfida
FacileLeggi una singola riga di input. Convalidala come email semplice verificando tutti questi punti:
- Contiene esattamente un
@(usafilter+countsui caratteri) - Non inizia né termina con
@ - Termina con
.tech,.comoppure.org(senza distinzione tra maiuscole e minuscole)
Stampa valid quando tutti i controlli vengono superati, altrimenti invalid. Confronta con la versione dell'input convertita in minuscolo.
Per l'input alice@CODDY.TECH, l'output è valid.
Provalo tu
let line = readLine()!
// TODO: verifica che ci sia esattamente una '@', che non sia agli estremi e che il suffisso sia tra [.tech .com .org]
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Le stringhe in dettaglio
Conteggio e indiciMaiuscole, minuscole e rimozione degli spaziRicerca nelle stringheSuddivisione e unioneSostituzione di sottostringheRiepilogo - Verifica del nome utente4Insiemi
Creare insiemiUnione e intersezioneDifferenza e differenza simmetricaSottoinsieme e sovrainsiemeRiepilogo - Filtro per tag7Progetto - Tracciatore di abitudini
Panoramica del progettoSegna come completato10Progetto - Motore di quiz
Panoramica del progettoPorre domande2Intervalli e passi
Intervalli chiusi e semiapertiPassoMetodi degli intervalliIntervalli in switchRiepilogo - Griglia del calendario5Funzioni di ordine superiore Parte 1
MapFilterReduceConcatenare map, filter e reduceRiepilogo - Statistiche sulle paroleEsercitati da solo: Playground Swift