String Dönüştürme
Coddy'nin Rust Journey'sinin Temeller bölümünün bir parçası. Ders 71 / 75.
Sayısal bir türü dizgeye dönüştürmek için to_string() yöntemini kullanabilirsin. Bu yöntem, tamsayılar ve kayan noktalı sayılar da dahil olmak üzere çoğu veri türünde kullanılabilir.
Örneğin:
let number = 42;
let number_str = number.to_string();
println!("The number as a string: {}", number_str);Bu örnekte, bir i32 değişkenini, number değişkenini String türüne dönüştürüyoruz.
Bir dizgeyi sayısal bir türe dönüştürmek için parse() yöntemini kullanabilirsin. Bu yöntem, ayrıştırılmış sayıyı veya dönüştürme başarısız olursa bir hata içeren bir sonuç döndürür.
Örneğin:
let number_str = "123";
let number: i32 = number_str.parse().unwrap();
println!("The number as an i32: {}", number);Bu örnekte, parse() yöntemini kullanarak bir metin olan number_str değerini i32 türüne dönüştürüyoruz. Dönüştürmenin başarılı olduğunu varsayarak unwrap() yöntemiyle Result içindeki değeri alıyoruz.
Dönüştürme başarısız olursa program paniğe kapılır (başarısız olur).
parse() işlevini farklı sayısal türlerle de kullanabilirsin:
let float_str = "3.14";
let float_num: f64 = float_str.parse().unwrap();
println!("The number as an f64: {}", float_num);Bu durumda, bir metni float_str bir f64 değerine dönüştürüyoruz.
Görev
KolayÜç bağımsız değişken alan convert_and_print adlı bir işlev oluştur:
- Bir dize dilimi
s: &str. Bu, metin olarak yazılmış bir sayıdır (ör."123.67"). Yalnızcato_stringdeğerifalseolduğunda kullanılır. - Bir kayan noktalı sayı
n: f64: kayan noktalı bir sayı. Yalnızcato_stringdeğeritrueolduğunda kullanılır. - Bir boole değeri
to_string: bool: hangi işlemin gerçekleştirileceğini belirler.
İşlev aşağıdaki işlemleri gerçekleştirmelidir:
to_stringdeğeritrueise:ndeğerini.to_string()kullanarak bir dizeye dönüştür, ardından içerdiği rakam karakterlerinin sayısını hesapla (nokta.veya eksi işaretini-sayma). Şu biçimde yazdır:Number: [string], Digits: [num of digits]
Örneğin,n = -321.198623ise, dize biçimi"-321.198623"olur ve-ile.sayılmadığında 9 rakam karakteri içerir.
İpucu:ndeğerini bir dizeye dönüştür, ardından üzerinde.len()kullan ve içerdiği her.veya-için 1 çıkar.to_stringdeğerifalseise:sdizesini.parse()kullanarak birf64olarak ayrıştır, ardından onui32türüne dönüştür (bu, ondalık kısmı atar). Şu biçimde yazdır:String as number: [number]
Örneğin,s = "123.67231"ise çıktıString as number: 123olur.
convert_and_print işlevini iki kez çağır:
- İlk olarak,
to_stringdeğerinifalseolarak ayarla. Bu,sdizesini kullanır vendeğerini yok sayar. - İkinci olarak,
to_stringdeğerinitrueolarak ayarla. Bu,nsayısını kullanır vesdeğerini yok sayar.
Kendin dene
use std::io;
fn convert_and_print(s: &str, n: f64, to_string: bool) {
// Kodunuzu buraya yazın
}
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();
// convert_and_print fonksiyonunu to_string = false ile çağırın
// convert_and_print fonksiyonunu to_string = true ile çağırın
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller bölümündeki tüm dersler
4Operatörler Bölüm 1
Aritmetik OperatörlerModül OperatörüAritmetik KısayollarKarşılaştırma OperatörleriString Karşılaştırma7Temel Girdi-Çıktı
Konsola YazdırmaKullanıcı Girdisi OkumaÖzet - 120'ye KadarÖzet - Doğru veya Yanlış5Operatörler Bölüm 2
Mantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Özet - Basit MantıkMantıksal Operatörler Bölüm 311Fonksiyonlar
Fonksiyon TanımlamaParametreler ve ArgümanlarDönüş DeğerleriBirden Fazla Dönüş DeğeriÖzet - Sigma FonksiyonuÖzet - Doğrulama Fonksiyonu14Diziler Üzerinde Gezinme
Range RehberiGelişmiş For DöngüsüDöngü İçinde Ödünç AlmaYaygın Dizi İşlemleri3Değişkenler Bölüm 2
Tür Bildirimiİsimlendirme KurallarıTür ÇıkarımıÖzet - Değişkenleri BaşlatmaTür Dönüştürme9Döngüler
Seriler Üzerinde ForWhile DöngüsüBreakContinueİç İçe DöngülerDöngü EtiketleriSonsuz DöngüÖzet - Dinamik GirdiKendi başına pratik yap: Online Rust derleyicisi