Array-Slicing mit Bereichen
Teil des Abschnitts Grundlagen der Ruby-Journey von Coddy. Lektion 69 von 88.
Manchmal musst du einen Teil eines Arrays extrahieren, anstatt auf einzelne Elemente zuzugreifen. Mit Ruby kannst du Arrays mithilfe von Bereichen aufteilen. Dabei wird ein neues Array erstellt, das nur die Elemente enthält, die du angibst.
Um einen Array-Ausschnitt mit einem Bereich zu erstellen, setze den Bereich in eckige Klammern:
numbers = [10, 20, 30, 40, 50]
slice = numbers[1..3]
puts slice # Gibt aus: 20, 30, 40Der Bereich 1..3 umfasst Elemente an den Indizes 1, 2 und 3. Denk daran, dass Array-Indizes bei 0 beginnen, daher ist Index 1 das zweite Element.
Du kannst auch den Bereich mit drei Punkten (...) verwenden, um den letzten Index auszuschließen:
letters = ["a", "b", "c", "d", "e"]
slice = letters[0...3]
puts slice # Ausgabe: a, b, cHier umfasst 0...3 die Indizes 0, 1 und 2, endet aber vor Index 3.
Negative Indizes funktionieren auch mit Bereichen. Sie zählen vom Ende des Arrays aus, wobei -1 das letzte Element ist:
colors = ["red", "green", "blue", "yellow"]
slice = colors[1..-1]
puts slice # Gibt aus: green, blue, yellowDies extrahiert alles vom Index 1 bis zum letzten Element. Das ist nützlich, wenn du das erste Element überspringen möchtest, ohne die Länge des Arrays zu kennen.
Aufgabe
EinfachLies zwei Eingaben ein:
- Eine einzelne Zeile mit durch Kommas getrennten Ganzzahlen (z. B.
10,20,30,40,50,60,70) - Eine Bereichsangabe im Format
start..endoderstart...end(z. B.2..5oder1...4)
Teile die erste Eingabe in ein Array aus Ganzzahlen auf. Verwende dann den Bereich aus der zweiten Eingabe, um das Array auszuschneiden, und gib jedes Element des ausgeschnittenen Abschnitts in einer eigenen Zeile aus.
Die Bereichseingabe verwendet entweder zwei Punkte (..), um den Endindex einzuschließen, oder drei Punkte (...), um ihn auszuschließen.
Wenn die Eingaben beispielsweise 10,20,30,40,50,60,70 und 2..5 sind, sollte die Ausgabe wie folgt aussehen:
30
40
50
60Wenn die Eingaben 5,10,15,20,25,30 und 0...3 sind, sollte die Ausgabe wie folgt aussehen:
5
10
15Wenn die Eingaben 100,200,300,400,500 und 1..-1 sind, sollte die Ausgabe wie folgt aussehen:
200
300
400
500Wenn die Eingaben a,b,c,d,e,f und -3..-1 sind, sollte die Ausgabe wie folgt aussehen:
d
e
fProbier es selbst
# Lies die durch Kommas getrennten Werte ein
input_values = gets.chomp
# Lies die Bereichsangabe ein
range_spec = gets.chomp
# TODO: Schreibe deinen Code darunter
# 1. Teile input_values in ein Array auf
# 2. Analysiere range_spec, um Anfang und Ende zu bestimmen und festzustellen, ob .. oder ... verwendet werden soll
# 3. Schneide das Array mithilfe des passenden Bereichs zu
# 4. Gib jedes Element des ausgeschnittenen Teils in einer eigenen Zeile ausDiese 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 47Rechner zum Aufteilen der Rechnung
WillkommensnachrichtBenutzereingaben erfassen10FizzBuzz mit einer Wendung
SpielübersichtDie FizzBuzz-Methode13Arrays für Fortgeschrittene
Array-Slicing mit BereichenArray-Slicing mit IndizesArray-OperatorenInclude?-Methode2Variablen und Datentypen
Zahlen und VariablenString-DatentypBoolean-DatentypSymbol-DatentypDatentypen überprüfenNamenskonventionenWiederholung – Variablen erstellen5Entscheidungsfindung
If-AnweisungIf - ElseRückblick – Einfacher TaschenrechnerVerschachteltes If - ElseUnless-Anweisung8Schleifen
For-Schleife mit BereichenWhile-SchleifeBreakNextRückblick – FakultätTimes-SchleifeUntil-SchleifeVerschachtelte SchleifenRückblick – Dynamische Eingabe3Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorArithmetische KurzschreibweisenRückblick – Einfache MathematikVergleichsoperatoren6Grundlegende Ein- und Ausgabe
Ausgabe mit putsAusgabe mit print und pAusgabe mit VariablenEingabe mit getsDie chomp-MethodeTypumwandlungWiederholung – AltersrechnerWiederholung – Wahr oder FalschÜbe selbstständig: Online-Ruby-Compiler