Menu
Coddy logo textTech

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 zu zerteilen. Anstatt einen Bereich anzugeben, geben Sie zwei Zahlen an: wo begonnen werden soll und wie viele Elemente extrahiert 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  # Ausgabe: 20, 30, 40

Dies extrahiert 3 Elemente beginnend bei Index 1. Die erste Zahl ist die Startposition und die zweite gibt an, wie viele Elemente Sie möchten.

Dieser Ansatz ist besonders nützlich, wenn Sie genau wissen, wie viele Elemente Sie benötigen:

letters = ["a", "b", "c", "d", "e"]
first_two = letters[0, 2]

puts first_two  # Ausgabe: a, b

Negative Indizes funktionieren hier auch. Sie können am Ende des Arrays beginnen:

colors = ["red", "green", "blue", "yellow"]
last_two = colors[-2, 2]

puts last_two  # Ausgabe: blue, yellow

Wenn Sie mehr Elemente anfordern, 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ählen Sie diese Methode, wenn Sie die Anzahl der benötigten Elemente kennen, und verwenden Sie Bereiche, wenn Sie die genauen Positionen kennen.

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 von Ganzzahlen auf. Verwende den Startindex und die Anzahl, um das Array mithilfe der Index-und-Längen-Syntax zu schneiden (slice), und gib dann jedes Element des geschnittenen Teils in einer eigenen Zeile aus.

Wenn die Eingaben beispielsweise 5,10,15,20,25,30,35,40, 2 und 4 sind, sollte die Ausgabe wie folgt aussehen:

15
20
25
30

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

100
200

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

e
f

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

20
30

Spickzettel

Ruby ermöglicht das Slicing von Arrays unter Verwendung eines Startindex und einer Länge. Die Syntax verwendet ein Komma, um den Startindex von der Anzahl zu trennen:

array[start_index, length]

Grundlegendes Beispiel:

numbers = [10, 20, 30, 40, 50]
slice = numbers[1, 3]
puts slice  # Outputs: 20, 30, 40

Die erste Zahl ist die Startposition und die zweite gibt an, wie viele Elemente extrahiert werden sollen.

Negative Indizes funktionieren mit dieser Syntax ebenfalls, sodass Sie am Ende des Arrays beginnen können:

colors = ["red", "green", "blue", "yellow"]
last_two = colors[-2, 2]
puts last_two  # Outputs: blue, yellow

Wenn Sie mehr Elemente anfordern, als verfügbar sind, gibt Ruby das zurück, was vorhanden ist, ohne einen Fehler auszulösen:

nums = [1, 2, 3]
slice = nums[1, 10]
puts slice  # Outputs: 2, 3

Probier es selbst

# Eingaben lesen
input_line = gets.chomp
start_index = gets.chomp.to_i
count = gets.chomp.to_i

# Die Eingabe in ein Array aufteilen
arr = input_line.split(',')

# TODO: Schreibe deinen Code unten, um das Array mit der Index-und-Längen-Syntax zu zerteilen
# und jedes Element in einer eigenen Zeile auszugeben
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