Menu
Coddy logo textTech

Iterieren über Strings

Teil des Abschnitts Grundlagen der Ruby-Journey von Coddy — Lektion 67 von 88.

Genau wie Arrays können Strings in Ruby Zeichen für Zeichen iteriert werden. Die each_char-Methode ermöglicht es Ihnen, jedes Zeichen in einem String einzeln zu verarbeiten.

So funktioniert es:

word = "Ruby"

word.each_char do |char|
  puts char
end

Dies gibt jedes Zeichen in einer separaten Zeile aus: R, u, b, y. Die Blockvariable char enthält jeweils ein Zeichen, während der Iterator die Zeichenkette durchläuft.

Wenn Sie sowohl das Zeichen als auch seine Position benötigen, verwenden Sie each_char.with_index:

word = "Hi"

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

Dies gibt Folgendes aus:

0: H
1: i

Eine weitere nützliche Methode ist chars, die einen String in ein Array seiner Zeichen umwandelt. Dies ermöglicht es dir, alle Array-Methoden zu verwenden, die du bereits gelernt hast:

letters = "abc".chars
puts letters  # Ausgabe: a, b, c

Diese Methoden sind hilfreich, wenn Sie Text analysieren, bestimmte Zeichen zählen oder Strings Zeichen für Zeichen transformieren müssen.

challenge icon

Aufgabe

Einfach

Lies eine einzelne Eingabezeile ein, die einen String enthält (z. B. hello).

Verwende each_char.with_index, um durch den String zu iterieren und jedes Zeichen zusammen mit seiner Position auszugeben. Jede Zeile sollte diesem Format folgen: Position 0: h

Nachdem alle Zeichen mit ihren Positionen ausgegeben wurden, gib die Gesamtzahl der Zeichen im String in einer neuen Zeile in diesem Format aus: Total characters: 5

Wenn die Eingabe zum Beispiel hello ist, sollte die Ausgabe wie folgt aussehen:

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

Wenn die Eingabe Ruby ist, sollte die Ausgabe wie folgt aussehen:

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

Wenn die Eingabe code ist, sollte die Ausgabe wie folgt aussehen:

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

Wenn die Eingabe A ist, sollte die Ausgabe wie folgt aussehen:

Position 0: A
Total characters: 1

Spickzettel

Verwenden Sie each_char, um über jedes Zeichen in einem String zu iterieren:

word = "Ruby"

word.each_char do |char|
  puts char
end

Verwenden Sie each_char.with_index, um sowohl auf das Zeichen als auch auf seine Position zuzugreifen:

word = "Hi"

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

Verwenden Sie chars, um einen String in ein Array von Zeichen umzuwandeln:

letters = "abc".chars
puts letters  # Ausgabe: a, b, c

Probier es selbst

# Eingabe einlesen
str = gets.chomp

# TODO: Schreibe deinen Code unten
# Verwende each_char.with_index, um durch den String zu iterieren
# Gib jedes Zeichen mit seiner Position im Format aus: Position X: char


# Gib die Gesamtzahl der Zeichen im Format aus: Total characters: X
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen