String Dönüştürme
Coddy'nin Rust Journey'sinin Fundamentals 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, tam sayılar ve kayan noktalı sayılar dahil olmak üzere çoğu veri türü için mevcuttur.
Ö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() metodunu kullanabilirsiniz. Bu metot, 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, number_str dizesini parse() metodunu kullanarak bir i32 türüne dönüştürüyoruz. unwrap() metodu, dönüşümün başarılı olduğunu varsayarak Result içerisinden değeri çıkarmak için kullanılır.
Dönüştürme başarısız olursa, program panikleyecektir (hata verecektir).
parse() fonksiyonunu farklı sayısal türlerle de kullanabilirsiniz:
let float_str = "3.14";
let float_num: f64 = float_str.parse().unwrap();
println!("The number as an f64: {}", float_num);Bu durumda, float_str dizesini bir f64 türüne dönüştürüyoruz.
Görev
KolayÜç argüman alan convert_and_print adında bir fonksiyon oluşturun:
- Bir string dilimi
s: &str— bu, metin olarak yazılmış bir sayıdır (örneğin"123.67"). Sadeceto_stringdeğerifalseolduğunda kullanılır. - Bir float
n: f64— ondalıklı bir sayı. Sadeceto_stringdeğeritrueolduğunda kullanılır. - Bir boolean
to_string: bool— hangi işlemin gerçekleştirileceğini belirler.
Fonksiyon aşağıdaki işlemleri gerçekleştirmelidir:
- Eğer
to_stringdeğeritrueise:nsayısını.to_string()kullanarak bir string'e dönüştürün, ardından kaç tane rakam karakteri içerdiğini sayın (nokta.veya eksi işaretini-saymayın). Şu formatta yazdırın:Number: [string], Digits: [num of digits]
Örneğin, eğern = -321.198623ise, string hali"-321.198623"olur ve bu 9 rakam karakteri içerir (-ve.hariç).
İpucu:nsayısını bir string'e dönüştürün, ardından üzerinde.len()kullanın ve içerdiği her.veya-için 1 çıkarın. - Eğer
to_stringdeğerifalseise:sstring'ini.parse()kullanarak birf64olarak ayrıştırın, ardından onui32tipine dönüştürün (bu işlem ondalık kısmı atar). Şu formatta yazdırın:String as number: [number]
Örneğin, eğers = "123.67231"ise, çıktıString as number: 123olur.
convert_and_print fonksiyonunu iki kez çağırın:
- İlk olarak,
to_stringdeğerifalseolarak ayarlanmış şekilde — busstring'ini kullanır vendeğerini görmezden gelir. - İkinci olarak,
to_stringdeğeritrueolarak ayarlanmış şekilde — bunsayısını kullanır vesdeğerini görmezden gelir.
Kopya kağıdı
Sayısal bir türü dizeye (string) dönüştürmek için to_string() metodunu kullanın:
let number = 42;
let number_str = number.to_string();Bir dizeyi (string) sayısal bir türe dönüştürmek için parse() metodunu kullanın:
let number_str = "123";
let number: i32 = number_str.parse().unwrap();parse() metodu farklı sayısal türlerle çalışır:
let float_str = "3.14";
let float_num: f64 = float_str.parse().unwrap();unwrap() metodu, değeri Result içerisinden çıkarır. Dönüştürme başarısız olursa program panikler (panic).
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();
// to_string = false ile convert_and_print fonksiyonunu çağırın
// to_string = true ile convert_and_print fonksiyonunu çağırın
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Fundamentals 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 Girdi