CodeBlanks Logo Icon CodeBlanks

split ve join

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 | kiraz

Parç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

main.rs
fn main() {
    // buraya yaz
}

Örnek çözüm

main.rs
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

Soru
let p = vec!["a", "b", "c"];
let s = p.____("-");   // "a-b-c"
Cevap
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"

Başlangıç bölümündeki tüm dersler

16 Proje: Yapılacaklar listesi

  1. Görev modeli
  2. Ekleme
  3. Listeleme
  4. İşaretleme
  5. Komut okuma