Menu
Coddy logo textTech

Parsowanie bez wyjątków

Część sekcji Logika i przepływ danych ścieżki Kotlin w Coddy. Lekcja 51 z 63.

toIntOrNull zwraca wartość Int dla prawidłowego ciągu znaków reprezentującego liczbę całkowitą mieszczącą się w zakresie, a null, gdy parsowanie się nie powiedzie, także w przypadku przepełnienia. Połącz je z bezpieczną gałęzią lub wartością zastępczą operatora Elvis. Przycinanie to osobna decyzja: jawnie przytnij ciąg, jeśli chcesz akceptować spacje na początku i na końcu.

Wewnątrz main:

println(" 24 ".trim().toIntOrNull() ?: -1)

Usunięcie otaczających spacji pozwala na pomyślną konwersję.

toIntOrNull zwraca null dla nieprawidłowego tekstu reprezentującego liczbę całkowitą lub tekstu spoza zakresu.

challenge icon

Wyzwanie

Średni

Uzupełnij parseOrMissing, podając parametr text: String. Usuń białe znaki z początku i końca tekstu i sparsuj go jako Int. Zwróć -1, jeśli parsowanie się nie powiedzie lub wartość będzie poza zakresem Int.

O ile powyżej nie podano bardziej rygorystycznych ograniczeń, kolekcje zawierają najwyżej 100 elementów na każdym poziomie, a argumenty całkowite i wartości całkowite w kolekcjach mieszczą się w przedziale od -1000 do 1000. Tekst przekazany do parsowania może zawierać nieprawidłowe lub wykraczające poza zakres zapisy, jak opisano.

Zwróć wartość typu Int. Zachowaj dostarczony kod wejścia/wyjścia. Odczytuje on argumenty skalarne, po jednym w wierszu; lista zaczyna się od liczby elementów, po której następują te elementy, a mapa zaczyna się od liczby wpisów, po której następują kolejno klucz i wartość każdego wpisu. W przypadku list zagnieżdżonych format liczby elementów i elementów jest powtarzany dla każdego wiersza. Dostarczona funkcja main wypisuje zwróconą wartość, a po niej jeden znak nowej linii. Listy używają standardowego formatu Kotlin z nawiasami kwadratowymi; nie wypisuj żadnych dodatkowych etykiet.

Spróbuj swoich sił

fun parseOrMissing(text: String): Int {
    // Wpisz tutaj swoje rozwiązanie.
    return 0
}
fun main() {
    val text = readLine().orEmpty()
    println(parseOrMissing(text))
}
quiz iconSprawdź się

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 danych

Poćwicz samodzielnie: Edytor online Kotlin