Dopasowywanie wzorców tekstowych
Część sekcji Logika i przepływ danych ścieżki Kotlin w Coddy. Lekcja 48 z 63.
Wyrażenie Regex opisuje wzorzec tekstu. [A-Z] dopasowuje jedną wielką literę ASCII, [0-9] dopasowuje jedną cyfrę, {2} wymaga dokładnie dwóch powtórzeń, a + wymaga jednego lub więcej. matches sprawdza całe wejście; samo dopasowanie podciągu nie wystarczy.
Wewnątrz main:
val code = Regex("[A-Z]{2}[0-9]{3}")
println(code.matches("AB123"))Całe wejście zawiera dokładnie dwie wielkie litery, po których następują trzy cyfry.
Regex.matches wymaga, aby całe wejście spełniało wzorzec.
Wyzwanie
ŚredniUzupełnij validCode parametrem text: String. Zwróć informację, czy tekst składa się dokładnie z trzech wielkich liter ASCII, po których następują dokładnie dwie cyfry ASCII, bez spacji ani innych znaków. Użyj Regex.matches.
Jeśli powyżej nie określono bardziej restrykcyjnych limitów, 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 zakresie od -1000 do 1000. Tekst dostarczony do parsowania może zawierać nieprawidłowe lub wykraczające poza ten zakres reprezentacje, zgodnie z opisem.
Zwróć wartość typu Boolean. Zachowaj dostarczony kod wejścia/wyjścia. Odczytuje on argumenty skalarne, po jednym w każdym 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ępuje każdy klucz i wartość. Zagnieżdżone listy powtarzają format liczby elementów i elementów dla każdego wiersza. Dostarczone main wypisuje wartość zwracaną, a następnie jeden znak nowej linii. Listy używają standardowego formatu Kotlin z nawiasami kwadratowymi; nie wypisuj żadnych dodatkowych etykiet.
Spróbuj swoich sił
fun validCode(text: String): Boolean {
// Napisz tutaj swoje rozwiązanie.
return false
}
fun main() {
val text = readLine().orEmpty()
println(validCode(text))
}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
1Mapy, część 1
Tworzenie mapBezpieczne odczyty z mapAktualizowanie mapSprawdzanie kluczyPowtórka – Stock Desk4Kolekcje zagnieżdżone
Listy listPrzechodzenie przez wierszePodsumowania wierszySpłaszczanie list zagnieżdżonychPowtórka – rzędy miejsc7Potoki operacji na kolekcjach
Przekształcanie za pomocą mapFiltrowanie wartościTestowanie reguł kolekcjiAgregowanie za pomocą foldPodsumowanie — zatwierdzone sumy10Przetwarzanie tekstu
Dzielenie i łączenieEfektywne tworzenie tekstuDopasowywanie wzorców tekstowychWyszukiwanie i zastępowaniePowtórka – czystszy kod2Mapy, część 2
Iterowanie po elementach mapyKlucze i wartościMapy częstotliwościZagnieżdżone mapyPodsumowanie — raport częstotliwości5Projekt – książka kontaktów
Zapisywanie kontaktówWyszukiwanie kontaktów3Zbiory i przynależność
Tworzenie zbiorówAktualizowanie zbiorówOperacje na zbiorachSprawdzanie podzbiorówPodsumowanie – goście wydarzenia6Wartości funkcji
Pisanie funkcji lambdaTypy funkcjiPrzekazywanie funkcjiPrzechwytywane zmiennePodsumowanie — konfigurowalny wynik9Zaawansowane sterowanie przebiegiem programu
Klauzule ochronnePrzerywanie pętli z etykietąKontynuowanie pętli z etykietąFunkcje rekurencyjnePodsumowanie — pierwszy poprawny wierszPoćwicz samodzielnie: Edytor online Kotlin