String-Konvertierung
Teil des Abschnitts Grundlagen der Rust-Journey von Coddy. Lektion 71 von 75.
Um einen numerischen Typ in eine Zeichenkette umzuwandeln, kannst du die Methode to_string() verwenden. Diese Methode ist für die meisten Datentypen verfügbar, darunter 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 wandeln wir eine i32-Variable number in einen String um.
Um eine Zeichenkette in einen numerischen Typ umzuwandeln, kannst du die Methode parse() verwenden. Diese Methode gibt ein Ergebnis zurück, das entweder die geparste Zahl oder einen Fehler enthält, falls die Umwandlung 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 wandeln wir mit der Methode parse() einen String number_str in einen i32 um. Die Methode unwrap() wird verwendet, um den Wert aus dem Result zu extrahieren, wobei angenommen wird, dass die Umwandlung erfolgreich ist.
Wenn die Konvertierung fehlschlägt, gerät das Programm in Panik (bricht ab).
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 wandeln wir eine Zeichenkette float_str in ein f64 um.
Aufgabe
EinfachErstelle eine Funktion namens convert_and_print, die drei Argumente entgegennimmt:
- Eine Zeichenketten-Slice
s: &str. Dies ist eine als Text geschriebene Zahl (z. B."123.67"). Sie wird nur verwendet, wennto_stringfalseist. - Eine Fließkommazahl
n: f64: eine Zahl mit Nachkommastellen. Sie wird nur verwendet, wennto_stringtrueist. - Ein boolescher Wert
to_string: bool: Er legt fest, welche Operation ausgeführt werden soll.
Die Funktion soll die folgenden Operationen ausführen:
- Wenn
to_stringtrueist: Wandlenmithilfe von.to_string()in eine Zeichenkette um und zähle dann, wie viele Ziffern sie enthält (zähle den Punkt.und das Minuszeichen-nicht mit). Gib das folgende Format aus:Number: [string], Digits: [num of digits]
Wenn beispielsweisen = -321.198623gilt, lautet die Zeichenkettenform"-321.198623"und sie enthält 9 Ziffern (ohne-und.).
Tipp: Wandlenin eine Zeichenkette um, wende dann.len()darauf an und ziehe für jeden enthaltenen.oder-den Wert 1 ab. - Wenn
to_stringfalseist: Parse die Zeichenkettesmithilfe von.parse()alsf64und wandle sie dann ini32um (wobei der Dezimalteil entfällt). Gib das folgende Format aus:String as number: [number]
Wenn beispielsweises = "123.67231"gilt, lautet die AusgabeString as number: 123.
Rufe convert_and_print zweimal auf:
- Zuerst mit
to_stringauffalsegesetzt. Dabei wird die Zeichenkettesverwendet undnignoriert. - Danach mit
to_stringauftruegesetzt. Dabei wird die Zahlnverwendet undsignoriert.
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
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorArithmetische AbkürzungenVergleichsoperatorenString-Vergleich7Grundlagen IO
Ausgabe in die KonsoleBenutzereingaben lesenWiederholung - Bis 120Wiederholung - Wahr oder Falsch5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Wiederholung - Einfache LogikLogische Operatoren Teil 311Funktionen
Funktionen deklarierenParameter und ArgumenteRückgabewerteMehrere RückgabewerteWiederholung - Sigma-FunktionWiederholung - Validierungsfunktion14Iterieren über Arrays
Range-LeitfadenErweiterte For-SchleifeBorrowing in SchleifenGängige Array-Operationen3Variablen Teil 2
TypdeklarationNamenskonventionenTypinferenzRückblick - Variablen initialisierenTypumwandlung6Entscheidungsfindung
If-AusdrückeIf-ElseMatch-AnweisungZusammenfassung - If-ElseVerschachteltes If-Else9Schleifen
For-Schleife über SerienWhile-SchleifeBreakContinueVerschachtelte SchleifenSchleifen-LabelsEndlosschleifeRückblick – Dynamische EingabeÜbe selbstständig: Online-Rust-Compiler