Menu
Coddy logo textTech

String-Konvertierung

Teil des Abschnitts Fundamentals der Rust-Journey von Coddy — Lektion 71 von 75.

Um einen numerischen Typ in einen String umzuwandeln, können Sie die Methode to_string() verwenden. Diese Methode ist für die meisten Datentypen verfügbar, einschließlich Ganzzahlen und Gleitkommazahlen.

Zum Beispiel:

let number = 42;
let number_str = number.to_string();
println!("The number as a string: {}", number_str);

In diesem Beispiel konvertieren wir eine i32-Variable number in einen String.

Um einen String in einen numerischen Typ umzuwandeln, können Sie die parse()-Methode verwenden. Diese Methode gibt ein Ergebnis zurück, das entweder die analysierte Zahl oder einen Fehler enthält, falls die Konvertierung fehlschlägt.

Zum Beispiel:

let number_str = "123";
let number: i32 = number_str.parse().unwrap();
println!("The number as an i32: {}", number);

In diesem Beispiel konvertieren wir einen String number_str in einen i32 mit der parse() Methode. Die unwrap() Methode wird verwendet, um den Wert aus dem Result zu extrahieren, unter der Annahme, dass die Konvertierung erfolgreich ist.

Wenn die Konvertierung fehlschlägt, wird das Programm paniken (fehlschlagen).

Du kannst parse() auch mit verschiedenen numerischen Typen verwenden:

let float_str = "3.14";
let float_num: f64 = float_str.parse().unwrap();
println!("The number as an f64: {}", float_num);

In diesem Fall konvertieren wir einen String float_str in ein f64.

challenge icon

Aufgabe

Einfach

Erstellen Sie eine Funktion namens convert_and_print, die drei Argumente entgegennimmt:

  1. Ein String-Slice s: &str — dies ist eine als Text geschriebene Zahl (z. B. "123.67"). Er wird nur verwendet, wenn to_string den Wert false hat.
  2. Ein Float n: f64 — eine Gleitkommazahl. Er wird nur verwendet, wenn to_string den Wert true hat.
  3. Ein Boolean to_string: bool — bestimmt, welche Operation ausgeführt werden soll.

Die Funktion sollte die folgenden Operationen ausführen:

  • Wenn to_string den Wert true hat: Konvertieren Sie n mit .to_string() in einen String und zählen Sie dann, wie viele Ziffernzeichen er enthält (zählen Sie den Punkt . oder das Minuszeichen - nicht mit). Geben Sie dies im folgenden Format aus:
    Number: [string], Digits: [num of digits]

    Wenn zum Beispiel n = -321.198623 ist, lautet die String-Form "-321.198623", was 9 Ziffernzeichen entspricht (ohne - und . zu zählen).

    Hinweis: Konvertieren Sie n in einen String, verwenden Sie dann .len() darauf und subtrahieren Sie 1 für jedes darin enthaltene . oder -.
  • Wenn to_string den Wert false hat: Parsen Sie den String s mit .parse() als f64 und wandeln Sie ihn dann in i32 um (wodurch der Nachkommateil wegfällt). Geben Sie dies im folgenden Format aus:
    String as number: [number]

    Wenn zum Beispiel s = "123.67231" ist, lautet die Ausgabe String as number: 123.

Rufen Sie convert_and_print zweimal auf:

  1. Zuerst mit to_string auf false gesetzt — dies verwendet den String s und ignoriert n.
  2. Zweitens mit to_string auf true gesetzt — dies verwendet die Zahl n und ignoriert s.

Spickzettel

Um einen numerischen Typ in einen String umzuwandeln, verwenden Sie die to_string()-Methode:

let number = 42;
let number_str = number.to_string();

Um einen String in einen numerischen Typ umzuwandeln, verwenden Sie die parse()-Methode:

let number_str = "123";
let number: i32 = number_str.parse().unwrap();

Die parse()-Methode funktioniert mit verschiedenen numerischen Typen:

let float_str = "3.14";
let float_num: f64 = float_str.parse().unwrap();

Die unwrap()-Methode extrahiert den Wert aus dem Result. Wenn die Umwandlung fehlschlägt, wird das Programm mit einem Panic abbrechen.

Probier es selbst

use std::io;

fn convert_and_print(s: &str, n: f64, to_string: bool) {
    // Schreibe deinen Code hier
}

fn main() {
    let mut input_number_str = String::new();
    let mut input_n = String::new();

    io::stdin().read_line(&mut input_number_str).unwrap();
    io::stdin().read_line(&mut input_n).unwrap();

    let n: f64 = input_n.trim().parse().unwrap();
    let number_str = input_number_str.trim();

    // Rufe convert_and_print mit to_string = false auf
    
    
    // Rufe convert_and_print mit to_string = true auf
    
}
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 Fundamentals