Iterowanie po ciągach znaków P2
Część sekcji Podstawy ścieżki Kotlin w Coddy. Lekcja 77 z 93.
Oprócz podstawowej iteracji ciągi znaków oferują kilka przydatnych metod tworzenia nowych ciągów na podstawie istniejących. Częstym zadaniem jest przekształcanie znaków podczas iteracji i zbieranie wyników.
Możesz utworzyć nowy ciąg znaków, dodając znaki do obiektu StringBuilder lub po prostu łącząc je ze zmienną typu string:
val original = "hello"
var result = ""
for (char in original) {
result += char.uppercaseChar()
}
println(result) // HELLOMetoda uppercaseChar() zamienia pojedynczy znak na wielką literę, natomiast lowercaseChar() robi odwrotnie. Metody te działają na pojedynczych wartościach typu Char, w przeciwieństwie do uppercase(), która działa na całych ciągach znaków.
Inną praktyczną techniką jest filtrowanie znaków podczas iteracji. Na przykład wyodrębnianie samych cyfr z ciągu znaków zawierającego różne znaki:
val mixed = "a1b2c3"
var digits = ""
for (char in mixed) {
if (char.isDigit()) {
digits += char
}
}
println(digits) // 123Kotlin udostępnia przydatne metody sprawdzania znaków, takie jak isDigit(), isLetter() i isWhitespace(), które zwracają true lub false w zależności od typu znaku. Ułatwiają one filtrowanie lub kategoryzowanie znaków podczas iteracji.
Wyzwanie
ŚredniNapisz funkcję extractLetters, która przyjmuje ciąg znaków text i zwraca nowy ciąg zawierający wyłącznie litery zapisane wielkimi literami.
Iteruj po każdym znaku, odfiltruj znaki niebędące literami i zamień pozostałe znaki na wielkie litery.
Parametry:
text(String): ciąg znaków, który może zawierać litery, cyfry, spacje i znaki specjalne
Zwraca: ciąg zawierający wyłącznie litery z danych wejściowych, wszystkie zapisane wielkimi literami (String)
Spróbuj swoich sił
fun extractLetters(text: String): String {
// Napisz kod tutaj
}
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory – część 1
Operatory arytmetyczneOperator moduloPrzypisanie z operatoremOperatory porównaniaPowtórka – proste działania matematyczne7Podstawowe wejście/wyjście
Funkcja printlnSzablony ciągów znakówWczytywanie danych przez ReadLineKonwersja typówPowtórka — lata do emeryturyPowtórka — prawda czy fałsz10Funkcje
Deklarowanie funkcjiParametry i argumentyWartości zwracaneArgumenty nazwaneWartości domyślneFunkcje z pojedynczym wyrażeniemPowtórka – funkcja SigmaPowtórka – funkcja walidująca13Iterowanie po sekwencjach
Iterowanie po elementachMetoda WithIndexIterowanie po ciągach znaków P1Iterowanie po ciągach znaków P2Podsumowanie — indeksowane litery2Zmienne
Val a VarWnioskowanie o typieLiczbyŁańcuch znakówWartość logicznaKonwencje nazewnictwaPowtórzenie – inicjalizacja zmiennych5Operatory, część 2
Operatory logiczne, część 1Operatory logiczne, część 2Operatory logiczne, część 3Operator trójargumentowy z wyrażeniem ifPowtórka — prosta logika8Kalkulator podziału rachunku
Wiadomość powitalnaPobieranie danych11FizzBuzz z niespodzianką
Omówienie gryFunkcja FizzBuzz3Obsługa wartości null
Czym jest bezpieczeństwo nullTypy dopuszczające nullOperator bezpiecznego wywołaniaOperator ElvisPodstawy wyzwania z funkcjamiAsercja wartości niebędącej nullPodsumowanie — bezpieczny dostęp6Podejmowanie decyzji
Instrukcja ifIf - elseIf jako wyrażenieWyrażenie whenWhen z zakresamiPowtórka — prosty kalkulator9Pętle
Pętla forPętla whilePętla do-whileBreakContinueZakresy w pętlachPętla zagnieżdżonaPowtórka – silniaPowtórka – dynamiczne wprowadzanie danychPoćwicz samodzielnie: Edytor online Kotlin