Conversione delle stringhe
Fa parte della sezione Fondamenti del percorso Rust di Coddy. Lezione 71 di 75.
Per convertire un tipo numerico in una stringa, puoi usare il metodo to_string(). Questo metodo è disponibile per la maggior parte dei tipi di dati, inclusi gli interi e i numeri in virgola mobile.
Per esempio:
let number = 42;
let number_str = number.to_string();
println!("The number as a string: {}", number_str);In questo esempio, stiamo convertendo una variabile i32 number in una String.
Per convertire una stringa in un tipo numerico, puoi usare il metodo parse(). Questo metodo restituisce un risultato che contiene il numero analizzato oppure un errore se la conversione non riesce.
Ad esempio:
let number_str = "123";
let number: i32 = number_str.parse().unwrap();
println!("The number as an i32: {}", number);In questo esempio, convertiamo una stringa number_str in un i32 usando il metodo parse(). Il metodo unwrap() viene usato per estrarre il valore da Result, supponendo che la conversione riesca.
Se la conversione non riesce, il programma andrà in panic (fallirà).
Puoi anche usare parse() con diversi tipi numerici:
let float_str = "3.14";
let float_num: f64 = float_str.parse().unwrap();
println!("The number as an f64: {}", float_num);In questo caso, convertiamo una stringa float_str in un f64.
Sfida
FacileCrea una funzione denominata convert_and_print che accetta tre argomenti:
- Una slice di stringa
s: &str. È un numero scritto come testo (ad es."123.67"). Viene usata solo quandoto_stringèfalse. - Un numero decimale
n: f64: un numero a virgola mobile. Viene usato solo quandoto_stringètrue. - Un booleano
to_string: bool: determina quale operazione eseguire.
La funzione deve eseguire le seguenti operazioni:
- Se
to_stringètrue: convertinin una stringa usando.to_string(), poi conta quanti caratteri numerici contiene (non contare il punto.o il segno meno-). Stampa nel formato:Number: [string], Digits: [num of digits]
Per esempio, sen = -321.198623, la sua rappresentazione in stringa è"-321.198623", che contiene 9 caratteri numerici (senza contare-e.).
Suggerimento: convertinin una stringa, poi usa.len()su di essa e sottrai 1 per ogni.o-che contiene. - Se
to_stringèfalse: analizza la stringascome unf64usando.parse(), poi convertila ini32(che elimina la parte decimale). Stampa nel formato:String as number: [number]
Per esempio, ses = "123.67231", l'output èString as number: 123.
Chiama convert_and_print due volte:
- La prima volta, con
to_stringimpostato sufalse. Questo usa la stringase ignoran. - La seconda volta, con
to_stringimpostato sutrue. Questo usa il numerone ignoras.
Provalo tu
use std::io;
fn convert_and_print(s: &str, n: f64, to_string: bool) {
// Scrivi il tuo codice qui
}
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();
// Chiama convert_and_print con to_string = false
// Chiama convert_and_print con to_string = true
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori Parte 1
Operatori aritmeticiOperatore moduloAbbreviazioni aritmeticheOperatori di confrontoConfronto tra stringhe7Input/output di base
Stampare sulla consoleLeggere l'input dell'utenteRiepilogo - Fino a 120Riepilogo - Vero o falso5Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Ripasso - Logica sempliceOperatori logici Parte 311Funzioni
Dichiarare le funzioniParametri e argomentiValori restituitiValori restituiti multipliRiepilogo - funzione SigmaRiepilogo - funzione di validazione14Iterare sugli array
Guida ai rangeCiclo for avanzatoPrestito nel cicloOperazioni comuni sugli array3Variabili Parte 2
Dichiarazione del tipoConvenzioni di denominazioneInferenza del tipoRipasso - Inizializzare le variabiliConversione di tipo9Cicli
Ciclo for su sequenzeCiclo whileBreakContinueCiclo annidatoEtichette dei cicliCiclo infinitoRiepilogo - Input dinamico12Fondamenti degli array
Dichiarare gli arrayArray come parametroAccedere agli elementiModificare gli arrayRiepilogo - Stampare un array in modo leggibile15Operazioni sulle stringhe
Metodi delle stringheMacro format!Conversione delle stringheRipasso - FormattazioneEsercitati da solo: Compilatore Rust online