Menu
Coddy logo textTech

Iterowanie po ciągach znaków

Część sekcji Podstawy ścieżki Ruby w Coddy. Lekcja 67 z 88.

Podobnie jak tablice, ciągi znaków w Ruby można iterować znak po znaku. Metoda each_char pozwala przetwarzać każdy znak w ciągu znaków osobno.

Oto jak to działa:

word = "Ruby"

word.each_char do |char|
  puts char
end

To wypisuje każdy znak w osobnym wierszu: R, u, b, y. Zmienna bloku char przechowuje po jednym znaku, gdy iterator przechodzi przez ciąg znaków.

Jeśli potrzebujesz zarówno znaku, jak i jego pozycji, użyj each_char.with_index:

word = "Hi"

word.each_char.with_index do |char, index|
  puts "#{index}: #{char}"
end

To daje wynik:

0: H
1: i

Inną przydatną metodą jest chars, która przekształca ciąg znaków w tablicę jego znaków. Dzięki temu możesz używać wszystkich metod tablic, których już się nauczyłeś:

letters = "abc".chars
puts letters  # Wyświetla: a, b, c

Te metody są przydatne, gdy chcesz analizować tekst, liczyć konkretne znaki lub przekształcać ciągi znaków znak po znaku.

challenge icon

Wyzwanie

Łatwy

Wczytaj jeden wiersz danych wejściowych zawierający ciąg znaków (np. hello).

Użyj each_char.with_index, aby iterować po ciągu znaków i wypisać każdy znak wraz z jego pozycją. Każdy wiersz powinien mieć następujący format: Position 0: h

Po wypisaniu wszystkich znaków wraz z ich pozycjami wypisz w nowym wierszu całkowitą liczbę znaków w ciągu znaków w następującym formacie: Total characters: 5

Na przykład, jeśli dane wejściowe to hello, dane wyjściowe powinny wyglądać tak:

Position 0: h
Position 1: e
Position 2: l
Position 3: l
Position 4: o
Total characters: 5

Jeśli dane wejściowe to Ruby, dane wyjściowe powinny wyglądać tak:

Position 0: R
Position 1: u
Position 2: b
Position 3: y
Total characters: 4

Jeśli dane wejściowe to code, dane wyjściowe powinny wyglądać tak:

Position 0: c
Position 1: o
Position 2: d
Position 3: e
Total characters: 4

Jeśli dane wejściowe to A, dane wyjściowe powinny wyglądać tak:

Position 0: A
Total characters: 1

Spróbuj swoich sił

# Wczytaj dane wejściowe
str = gets.chomp

# TODO: Napisz swój kod poniżej
# Użyj each_char.with_index, aby przejść przez łańcuch znaków
# Wypisz każdy znak wraz z jego pozycją w formacie: Position X: char


# Wypisz łączną liczbę znaków w formacie: Total characters: X
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator Ruby online