Array-Slicing mit Indizes
Teil des Abschnitts Grundlagen der Ruby-Journey von Coddy. Lektion 70 von 88.
Ruby bietet eine weitere Möglichkeit, Arrays mithilfe eines Startindex und einer Länge aufzuteilen. Anstatt einen Bereich anzugeben, gibst du zwei Zahlen an: wo begonnen werden soll und wie viele Elemente entnommen werden sollen.
Die Syntax verwendet ein Komma, um den Startindex von der Anzahl zu trennen:
numbers = [10, 20, 30, 40, 50]
slice = numbers[1, 3]
puts slice # Gibt aus: 20, 30, 40Dadurch werden 3 Elemente ab Index 1 extrahiert. Die erste Zahl ist die Startposition, und die zweite gibt an, wie viele Elemente du möchtest.
Dieser Ansatz ist besonders nützlich, wenn du genau weißt, wie viele Elemente du benötigst:
letters = ["a", "b", "c", "d", "e"]
first_two = letters[0, 2]
puts first_two # Ausgabe: a, bNegative Indizes funktionieren auch hier. Du kannst am Ende des Arrays beginnen:
colors = ["red", "green", "blue", "yellow"]
last_two = colors[-2, 2]
puts last_two # Ausgabe: blue, yellowWenn du mehr Elemente anforderst, als verfügbar sind, gibt Ruby einfach das zurück, was vorhanden ist, ohne einen Fehler auszulösen:
nums = [1, 2, 3]
slice = nums[1, 10]
puts slice # Ausgabe: 2, 3Wähle diese Methode, wenn du die Anzahl der benötigten Elemente kennst, und verwende Bereiche, wenn du die genauen Positionen kennst.
Aufgabe
EinfachLies drei Eingaben ein:
- Eine einzelne Zeile mit durch Kommas getrennten Ganzzahlen (z. B.
5,10,15,20,25,30,35,40) - Einen Startindex (Ganzzahl)
- Die Anzahl der zu extrahierenden Elemente (Ganzzahl)
Teile die erste Eingabe in ein Array aus Ganzzahlen auf. Verwende den Startindex und die Anzahl, um das Array mit der Index-und-Längen-Syntax zu slicen, und gib dann jedes Element des ausgeschnittenen Abschnitts in einer eigenen Zeile aus.
Wenn die Eingaben beispielsweise 5,10,15,20,25,30,35,40, 2 und 4 sind, sollte die Ausgabe so aussehen:
15
20
25
30Wenn die Eingaben 100,200,300,400,500, 0 und 2 sind, sollte die Ausgabe so aussehen:
100
200Wenn die Eingaben a,b,c,d,e,f,g, -3 und 2 sind, sollte die Ausgabe so aussehen:
e
fWenn die Eingaben 10,20,30, 1 und 10 sind, sollte die Ausgabe so aussehen:
20
30Probier es selbst
# Lies die Eingaben ein
input_line = gets.chomp
start_index = gets.chomp.to_i
count = gets.chomp.to_i
# Teile die Eingabe in ein Array auf
arr = input_line.split(',')
# TODO: Schreibe unten deinen Code, um das Array mit der Index-und-Längen-Syntax aufzuteilen
# und gib jedes Element 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