Menu
CoddyTech

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, 40

Dadurch 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, b

Negative 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, yellow

Wenn 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, 3

Wähle diese Methode, wenn du die Anzahl der benötigten Elemente kennst, und verwende Bereiche, wenn du die genauen Positionen kennst.

challenge icon

Aufgabe

Einfach

Lies drei Eingaben ein:

  1. Eine einzelne Zeile mit durch Kommas getrennten Ganzzahlen (z. B. 5,10,15,20,25,30,35,40)
  2. Einen Startindex (Ganzzahl)
  3. 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
30

Wenn die Eingaben 100,200,300,400,500, 0 und 2 sind, sollte die Ausgabe so aussehen:

100
200

Wenn die Eingaben a,b,c,d,e,f,g, -3 und 2 sind, sollte die Ausgabe so aussehen:

e
f

Wenn die Eingaben 10,20,30, 1 und 10 sind, sollte die Ausgabe so aussehen:

20
30

Probier 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 aus
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

Übe selbstständig: Online-Ruby-Compiler