Parsing senza eccezioni
Fa parte della sezione Logica e flusso del percorso Kotlin di Coddy. Lezione 51 di 63.
toIntOrNull restituisce un Int per una stringa intera valida e compresa nell’intervallo e null quando l’analisi non riesce, incluso in caso di overflow. Combinalo con un ramo sicuro o un fallback Elvis. La rimozione degli spazi è una scelta separata: rimuovili esplicitamente se vuoi accettare gli spazi circostanti.
Dentro di main:
println(" 24 ".trim().toIntOrNull() ?: -1)La rimozione degli spazi elimina quelli circostanti prima che la conversione riesca.
toIntOrNull segnala come null il testo di un intero non valido o fuori intervallo.
Sfida
MedioCompleta parseOrMissing con il parametro text: String. Rimuovi gli spazi iniziali e finali da text e analizzalo come Int. Restituisci -1 se l’analisi non riesce o il valore è fuori dall’intervallo di Int.
A meno che sopra non siano specificati limiti più restrittivi, 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 Int. Mantieni il codice di input/output fornito. Legge gli argomenti scalari uno per riga; una lista inizia con il conteggio seguito dai suoi elementi, mentre una mappa inizia con il conteggio delle sue voci, seguito da ogni chiave e valore. Le liste annidate ripetono il formato conteggio-elementi per ogni riga. Il main fornito stampa il valore restituito seguito da una nuova riga. Le liste usano il formato standard di Kotlin tra parentesi quadre; non stampare etichette aggiuntive.
Provalo tu
fun parseOrMissing(text: String): Int {
// Scrivi qui la tua soluzione.
return 0
}
fun main() {
val text = readLine().orEmpty()
println(parseOrMissing(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 approvati2Mappe Parte 2
Iterare sulle voci delle mappeChiavi e valoriMappe di frequenzaMappe annidateRiepilogo - Report delle frequenze5Progetto - Rubrica
Salva contattiTrova contatti8Ordinare e raggruppare
Ordinare in base a una chiaveCombinare i confrontiRaggruppare i valoriAssociare in base a una chiaveRiepilogo - Classifica per lunghezza11Gestione degli errori
Parsing senza eccezioniGestire errori specificiTry come espressioneConvalidare con requireRiepilogo - Quantità validate3Insiemi 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