String-Konvertierung
Teil des Abschnitts Grundlagen der Rust-Journey von Coddy. Lektion 71 von 75.
Um einen numerischen Datentyp in einen String umzuwandeln, kannst du 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, kannst du die Methode parse() verwenden. Diese Methode gibt ein Ergebnis zurück, das entweder die geparste Zahl oder einen Fehler enthält, wenn 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 konvertieren wir einen string number_str mithilfe der Methode parse() in ein i32. Die Methode unwrap() wird verwendet, um den Wert aus dem Result zu extrahieren, wobei davon ausgegangen wird, dass die Konvertierung erfolgreich ist.
Wenn die Konvertierung fehlschlägt, gerät das Programm in Panik (schlägt fehl).
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 einen String float_str in ein f64 um.
Aufgabe
EinfachErstelle eine Funktion namens convert_and_print, die drei Argumente entgegennimmt:
- Eine String-Slice
s: &str. Dies ist eine als Text geschriebene Zahl (z. B."123.67"). Sie wird nur verwendet, wennto_stringfalseist. - Eine Gleitkommazahl
n: f64: eine Fließkommazahl. Sie wird nur verwendet, wennto_stringtrueist. - Ein boolescher Wert
to_string: bool: bestimmt, welcher Vorgang ausgeführt werden soll.
Die Funktion soll die folgenden Vorgänge ausführen:
- Wenn
to_stringtrueist: Wandlenmithilfe von.to_string()in einen String um und zähle anschließend, wie viele Ziffernzeichen er enthält (zähle den Punkt.und das Minuszeichen-nicht mit). Gib das Ergebnis im folgenden Format aus:Number: [string], Digits: [num of digits]
Wenn beispielsweisen = -321.198623ist, lautet die Stringdarstellung"-321.198623"und sie enthält 9 Ziffernzeichen (ohne-und.zu zählen).
Tipp: Wandlenin einen String um, verwende anschließend.len()darauf und ziehe für jeden darin enthaltenen.- oder--Wert 1 ab. - Wenn
to_stringfalseist: Parse den Stringsmithilfe vonf64als.parse()und wandle ihn anschließend ini32um (wodurch der Dezimalteil entfernt wird). Gib das Ergebnis im folgenden Format aus:String as number: [number]
Wenn beispielsweises = "123.67231"ist, lautet die AusgabeString as number: 123.
Rufe convert_and_print zweimal auf:
- Zuerst mit
to_string, das auffalsegesetzt ist. Dadurch wird der Stringsverwendet undnignoriert. - Danach mit
to_string, das auftruegesetzt ist. Dadurch 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