split ve join
- Rust kursu
- Başlangıç
- Ders 104/115
- 4 dk
split ile parçalama, join ile birleştirme yaparsın.
split ve join
split metni bir ayraçtan böler ve &str parçaları veren bir yineleyici döndürür. join ise parça listesini tek metne birleştirir:
let csv = "elma, armut ,kiraz";
let parcalar: Vec<&str> = csv.split(',').map(|p| p.trim()).collect();
println!("{:?}", parcalar); // ["elma", "armut", "kiraz"]
println!("{}", parcalar.join(" | ")); // elma | armut | kirazParçalar kaynağın dilimleridir; kopya yapılmaz. Kaynak metin, parçalar kullanıldığı sürece yaşamalıdır.
Diğer bölme yöntemleri
Duruma göre farklı bölme yöntemleri vardır:
"bir iki\tüç".split_whitespace() // ["bir", "iki", "üç"]
"a\nb\nc".lines() // ["a", "b", "c"]
"anahtar=değer".split_once('=') // Some(("anahtar", "değer"))
"a-b-c-d".splitn(2, '-') // ["a", "b-c-d"]
"a-b-c".rsplit('-') // ["c", "b", "a"]split_whitespace birden çok boşluğu ve sekmeyi tek ayraç sayar; kullanıcı girdisi için en güvenlisidir.
Uygulama CSV satırı
let csv = "elma, armut ,kiraz"; metnini split(',') ve trim ile parçalara ayırıp Vec<&str>'ye topla. Vektörü {:?} ile ve join(" | ") sonucunu boşlukla ayırarak yazdır.
Başlangıç kodu
fn main() {
// buraya yaz
}Örnek çözüm
fn main() {
let csv = "elma, armut ,kiraz";
let parcalar: Vec<&str> = csv.split(',').map(|p| p.trim()).collect();
println!("{:?} {}", parcalar, parcalar.join(" | "));
}Beklenen çıktı
["elma", "armut", "kiraz"] elma | armut | kiraz
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 <code>"a,,b".split(',').count()</code> nedir?
- 3 ("a", "", "b") Doğru cevap
- 2
- 4
- 1
Açıklama: Ardışık iki ayraç arasında boş bir parça oluşur. Boşları atmak için filter(|p| !p.is_empty()) kullanılır.
2 Parçaları birleştir
let p = vec!["a", "b", "c"];
let s = p.____("-"); // "a-b-c"
let p = vec!["a", "b", "c"];
let s = p.join("-"); // "a-b-c"
Açıklama: join parçaların arasına verilen ayracı koyarak birleştirir.
3 Yöntem ve sonuç
| Kavram | Anlamı |
|---|---|
"a b c".split_whitespace().count() |
3 |
"a,b".split(',').count() |
2 |
"x=1".split_once('=') |
Some(("x", "1")) |
["a", "b"].join("+") |
"a+b" |