Iterowanie po łańcuchach znaków
Część sekcji Logika i przepływ programu ścieżki Ruby w Coddy. Lekcja 3 z 56.
Ciąg znaków w Ruby to sekwencja znaków, po której możesz iterować bezpośrednio za pomocą each_char:
"ruby".each_char do |c|
puts c
end
# r
# u
# b
# yJeśli potrzebujesz również indeksu, użyj each_char.with_index:
"hi".each_char.with_index do |c, i|
puts "#{i}: #{c}"
end
# 0: h
# 1: iAby od razu uzyskać tablicę znaków, wywołaj chars:
"ruby".chars # ["r", "u", "b", "y"]Wyzwanie
ŁatwyWczytaj jeden wiersz danych wejściowych. Policz, ile zawiera samogłosek (a, e, i, o, u, bez rozróżniania wielkości liter), i wypisz:
Vowels: <count>Dla danych wejściowych Hello Ruby wynikiem jest Vowels: 3: e, o, u. (y nie jest liczona.)
Spróbuj swoich sił
input = gets.chomp
count = 0
# TODO: przejdź przez każdy znak i policz samogłoski
puts "Vowels: #{count}"
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 programu
1Łańcuchy znaków w szczegółach
Przegląd metod łańcuchów znakówInterpolacja łańcuchów znakówIterowanie po łańcuchach znakówDzielenie i łączeniePowtórka – Tkacz łańcuchów znaków4Bloki, procki i lambdy
Czym jest blok?do..end a nawiasy klamroweSłowo kluczowe yieldParametry blokuProcki i lambdyPodsumowanie — własny iterator7Hashe, część 2
Hash.new z wartościami domyślnymiIterowanie po haszachZagnieżdżone haszeŁączenie i przekształcaniePowtórka — licznik częstotliwości10Projekt – ewidencja uczniów
Przegląd projektuDodawanie ucznia5Potęga Enumerable
Select i RejectŁączenie wywołań mapReduce / Injectcount, all?, any?, none?group_by i partitionsort_by, min_by, max_byPodsumowanie — potok danych8Zaawansowane podejmowanie decyzji
case z klasami i wyrażeniami regularnymiwhen z wieloma wartościamiOperator trójargumentowyInline if / unlessPowtórka – klasyfikator ocenPoćwicz samodzielnie: Kompilator Ruby online