Menu
Coddy logo textTech

String-Slices erstellen

Teil des Abschnitts Logic & Flow der Rust-Journey von Coddy — Lektion 55 von 66.

Nachdem Sie nun den Unterschied zwischen String und &str verstanden haben, lernen wir nun, wie man String-Slices aus bestehenden Strings erstellt. Es gibt zwei Hauptwege, um ein &str aus einem String zu erstellen.

Der einfachste Weg ist die Verwendung des Referenz-Operators & mit Ihrem String. Dies erstellt einen Slice, der auf den gesamten String verweist:

let my_string = String::from("Hello World");
let slice: &str = &my_string; // Dies erstellt einen Slice des gesamten Strings

Du kannst auch Slices von bestimmten Teilen eines Strings mit der Range-Syntax erstellen. Das Format ist &string[start..end], wobei start der Startindex ist und end eins nach dem letzten Zeichen liegt, das du einschließen möchtest:

let my_string = String::from("Hello World");
let first_word = &my_string[0..5]; // Dies ergibt "Hello"
let second_word = &my_string[6..11]; // Dies ergibt "World"

Die in der Range-Syntax verwendeten Indizes sind vom Typ usize, welcher Rusts vorzeichenloser Ganzzahltyp zur Darstellung von Größen und Indizes ist. Es ist der Standardtyp, der immer dann verwendet wird, wenn Sie in eine Collection indizieren oder eine Länge angeben müssen. Beim Parsen von Indexwerten aus einer Eingabe verwenden Sie .parse::<usize>(), um diese in den korrekten Typ zu konvertieren.

challenge icon

Aufgabe

Einfach

Sie erhalten zwei Eingaben. Die erste Eingabe ist ein vollständiger Satz, und die zweite Eingabe besteht aus zwei durch ein Leerzeichen getrennten Zahlen, die den Start- und Endindex für die Erstellung eines Slices darstellen. Erstellen Sie einen String aus der ersten Eingabe und erstellen Sie dann einen String-Slice unter Verwendung des durch die beiden Indizes angegebenen Bereichs. Geben Sie den ursprünglichen String in der ersten Zeile und den extrahierten Slice in der zweiten Zeile aus.

Anforderungen:

  • Lesen Sie die erste Eingabe (den vollständigen Satz) ein und entfernen Sie Leerzeichen am Anfang und Ende (trim)
  • Erstellen Sie einen String aus dieser Eingabe
  • Lesen Sie die zweite Eingabe (zwei durch ein Leerzeichen getrennte Zahlen) ein und entfernen Sie Leerzeichen am Anfang und Ende (trim)
  • Teilen Sie die zweite Eingabe am Leerzeichen auf, um den Start- und Endindex zu erhalten
  • Parsen Sie beide Indizes zu usize
  • Erstellen Sie einen String-Slice mit der Range-Syntax &string[start..end]
  • Geben Sie den ursprünglichen String aus
  • Geben Sie den extrahierten Slice aus

Eingabe:

  • Erste Zeile: Ein Satz (z. B. Hello World)
  • Zweite Zeile: Zwei durch ein Leerzeichen getrennte Zahlen (z. B. 0 5)

Ausgabe:

  • Erste Zeile: Der ursprüngliche String
  • Zweite Zeile: Der extrahierte Slice

Probier es selbst

use std::io;

fn main() {
    // Lies die erste Eingabe (den vollständigen Satz)
    let mut sentence = String::new();
    io::stdin().read_line(&mut sentence).expect("Failed to read line");
    let sentence = sentence.trim();
    
    // Lies die zweite Eingabe (zwei durch ein Leerzeichen getrennte Zahlen)
    let mut indices = String::new();
    io::stdin().read_line(&mut indices).expect("Failed to read line");
    let indices = indices.trim();
    
    // TODO: Schreibe deinen Code unten
    // Analysiere die Indizes und erstelle den String-Slice
    
    
    // Gib den ursprünglichen String und den Slice 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 Logic & Flow