Trovare e sostituire
Fa parte della sezione Logica e flusso del percorso Kotlin di Coddy. Lezione 49 di 63.
Regex.findAll restituisce le corrispondenze in ordine. Ogni corrispondenza ha una stringa value. Puoi scorrere queste corrispondenze oppure trasformarle con map e raccoglierle con toList. Regex.replace sostituisce ogni corrispondenza con il testo sostitutivo specificato.
All'interno di main:
val digits = Regex("[0-9]+")
println(digits.replace("Box12Shelf7", "#"))Ogni gruppo consecutivo di cifre è una corrispondenza, quindi ci sono due sostituzioni.
findAll visita le corrispondenze in ordine; Regex.replace sostituisce tutte le corrispondenze per impostazione predefinita.
Sfida
MedioCompleta extractNumbers con i parametri text: String. Restituisci ogni gruppo consecutivo di cifre ASCII come stringa, da sinistra a destra. Conserva gli zeri iniziali. Restituisci una lista vuota quando non ci sono cifre.
A meno che sopra non siano specificati limiti più rigorosi, le raccolte contengono al massimo 100 elementi a ogni livello e gli argomenti interi e i valori interi delle raccolte sono compresi tra -1000 e 1000. Il testo fornito per l'analisi può includere rappresentazioni non valide o fuori intervallo, come descritto.
Restituisci un valore di tipo List<String>. Mantieni il codice di input/output fornito. Legge gli argomenti scalari uno per riga; una lista inizia con il suo conteggio seguito dai suoi elementi e una mappa inizia con il conteggio delle voci seguito da ciascuna chiave e valore. Le liste annidate ripetono il formato conteggio ed elementi per ogni riga. Il main fornito stampa il valore restituito seguito da una nuova riga. Le liste usano il formato standard tra parentesi quadre di Kotlin; non stampare etichette aggiuntive.
Provalo tu
fun extractNumbers(text: String): List<String> {
// Scrivi qui la tua soluzione.
return emptyList()
}
fun main() {
val text = readLine().orEmpty()
println(extractNumbers(text))
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Mappe Parte 1
Creare mappeConsultare le mappe in modo sicuroAggiornare le mappeControllare le chiaviRiepilogo - Banco di borsa4Collezioni annidate
Liste di listeAttraversare le righeRiepiloghi delle righeAppiattire liste annidateRipasso - File di posti a sedere7Pipeline di collezioni
Trasformare con MapFiltrare i valoriVerificare le regole della collezioneAccumulare con FoldRiepilogo - Totali approvati10Elaborazione del testo
Suddividere e unireCreare testo in modo efficienteIndividuare schemi nel testoTrovare e sostituireRiepilogo - Codice più pulito2Mappe Parte 2
Iterare sulle voci delle mappeChiavi e valoriMappe di frequenzaMappe annidateRiepilogo - Report delle frequenze5Progetto - Rubrica
Salva contattiTrova contatti3Insiemi e appartenenza
Creare insiemiAggiornare gli insiemiOperazioni sugli insiemiVerificare i sottoinsiemiRiepilogo - Ospiti dell'evento6Valori delle funzioni
Scrivere funzioni lambdaTipi di funzionePassare funzioniVariabili catturateRiepilogo - Punteggio configurabileEsercitati da solo: Playground Kotlin