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
endDies 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}"
endDies gibt Folgendes aus:
0: H
1: iEine 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, cDiese Methoden sind hilfreich, wenn Sie Text analysieren, bestimmte Zeichen zählen oder Strings Zeichen für Zeichen transformieren müssen.
Aufgabe
EinfachLies 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: 5Wenn die Eingabe Ruby ist, sollte die Ausgabe wie folgt aussehen:
Position 0: R
Position 1: u
Position 2: b
Position 3: y
Total characters: 4Wenn die Eingabe code ist, sollte die Ausgabe wie folgt aussehen:
Position 0: c
Position 1: o
Position 2: d
Position 3: e
Total characters: 4Wenn die Eingabe A ist, sollte die Ausgabe wie folgt aussehen:
Position 0: A
Total characters: 1Spickzettel
Verwenden Sie each_char, um über jedes Zeichen in einem String zu iterieren:
word = "Ruby"
word.each_char do |char|
puts char
endVerwenden 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}"
endVerwenden Sie chars, um einen String in ein Array von Zeichen umzuwandeln:
letters = "abc".chars
puts letters # Ausgabe: a, b, cProbier 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: XDiese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Wiederholung – Einfache LogikLogische Operatoren Teil 3Logische Operatoren Teil 47Rechnungs-Splitter
WillkommensnachrichtBenutzereingaben abfragen10FizzBuzz mit Twist
SpielübersichtDie FizzBuzz-Methode13Arrays für Fortgeschrittene
Array Slicing mit BereichenArray Slicing mit IndizesArray-OperatorenInclude? Methode2Variablen und Datentypen
Zahlen und VariablenDatentyp StringDatentyp BooleanDatentyp SymbolDatentypen prüfenBenennungskonventionenZusammenfassung – Erstellung von Variablen5Entscheidungsfindung
If-AnweisungIf - ElseWiederholung - Einfacher TaschenrechnerVerschachtelte If - Else-AnweisungenUnless-Anweisung8Schleifen
For-Schleife mit RangesWhile-SchleifeBreakNextRückblick - FakultätTimes-SchleifeUntil-SchleifeVerschachtelte SchleifenRückblick - Dynamische Eingabe3Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorArithmetische AbkürzungenWiederholung – Einfache MathematikVergleichsoperatoren6Grundlagen Ein- und Ausgabe
Ausgabe mit putsAusgabe mit print und pAusgabe mit VariablenEingabe mit getsChomp-MethodeTypumwandlungWiederholung - AltersrechnerWiederholung - Wahr oder Falsch