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ü dizeye dönüştürmek için to_string() yöntemini kullanabilirsiniz. Bu yöntem, tamsayılar ve kayan noktalı sayılar da dâhil olmak üzere çoğu veri türü için 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şkeni olan number'ı bir String'e dönüştürüyoruz.
Bir dizeyi sayısal bir türe dönüştürmek için parse() yöntemini kullanabilirsiniz. Bu yöntem, ayrıştırılmış sayıyı veya dönüştürme başarısız olursa bir hatayı 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, bir dizeyi number_str, parse() yöntemini kullanarak i32 türüne dönüştürüyoruz. Dönüştürmenin başarılı olduğu varsayılarak, Result içindeki değeri çıkarmak için unwrap() yöntemi kullanılır.
Dönüştürme başarısız olursa program panik yapar (başarısız olur).
Farklı sayısal türlerle parse() kullanabilirsiniz:
let float_str = "3.14";
let float_num: f64 = float_str.parse().unwrap();
println!("The number as an f64: {}", float_num);Bu durumda, bir dize olan float_str'i f64'e dönüştürüyoruz.
Görev
Kolayconvert_and_print adlı ve üç bağımsız değişken alan bir işlev oluşturun:
- Bir string dilimi
s: &str. Bu, metin olarak yazılmış bir number değeridir (ör."123.67"). Yalnızcato_stringdeğerifalseolduğunda kullanılır. - Bir float
n: f64: bir kayan noktalı number. Yalnızcato_stringdeğeritrueolduğunda kullanılır. - Bir boolean
to_string: bool: gerçekleştirilecek işlemi belirler.
İşlev aşağıdaki işlemleri gerçekleştirmelidir:
to_stringdeğeritrueise:.to_string()kullanarakndeğerini bir string değerine dönüştürün, ardından içerdiği rakam karakterlerinin sayısını hesaplayın (nokta.veya eksi işaretini-saymayın). Şu biçimde yazdırın:Number: [string], Digits: [num of digits]
Örneğin,n = -321.198623ise string biçimi"-321.198623"olur ve bu biçimde 9 rakam karakteri bulunur (-ve.sayılmaz).
İpucu:ndeğerini bir string değerine dönüştürün, ardından üzerinde.len()kullanın ve içerdiği her.veya-için 1 çıkarın.to_stringdeğerifalseise:.parse()kullanarak stringsdeğerini birf64olarak ayrıştırın, ardından bunui32türüne dönüştürün (ondalık kısmı atar). Şu biçimde yazdırın:String as number: [number]
Örneğin,s = "123.67231"ise çıktıString as number: 123olur.
convert_and_print işlevini iki kez çağırın:
- İlk olarak,
to_stringdeğerinifalseolarak ayarlayarak çağırın. Bu, stringsdeğerini kullanır vendeğerini yok sayar. - İkinci olarak,
to_stringdeğerinitrueolarak ayarlayarak çağırın. Bu, numberndeğerini 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'i to_string = false ile çağır
// convert_and_print'i to_string = true ile çağır
}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