CodeBlanks Logo Icon CodeBlanks

String uzunluğu

len, is_empty ve chars metotlarıyla string hakkında bilgi alırsın.

String uzunluğu

len() karakter değil bayt sayısını verir. Türkçe harfler UTF-8'de 2 bayttır; karakter sayısı için chars().count() kullanılır:

let s = "çay";
println!("{}", s.len());            // 4
println!("{}", s.chars().count());  // 3
println!("{}", "".is_empty());      // true

Bu yüzden Rust s[0] gibi tam sayı dizinlemeye izin vermez: bir bayt bir karakterin ortası olabilir.

chars ve bytes

chars() metni Unicode karakterlerine, bytes() ise ham baytlara ayırır. N'inci karakteri almak için chars().nth(n) kullanılır; bu bir Option<char> döner çünkü metin kısa olabilir:

let s = "Gölge";
println!("{:?}", s.chars().nth(1));   // Some('ö')
println!("{:?}", s.bytes().nth(1));   // Some(195) – ö'nün ilk baytı
println!("{:?}", s.chars().nth(9));   // None

Uygulama Bayt ve karakter

let s = "Gölge"; için s.len(), s.chars().count() ve s.chars().nth(1) değerlerini println!("{} {} {:?}", ...) ile yazdır.

Başlangıç kodu

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

Örnek çözüm

main.rs
fn main() {
    let s = "Gölge";
    println!("{} {} {:?}", s.len(), s.chars().count(), s.chars().nth(1));
}

Beklenen çıktı

6 5 Some('ö')

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 <code>"ğğ".len()</code> kaçtır?

  • 1
  • 8
  • 4 Doğru cevap
  • 2

Açıklama: ğ UTF-8'de 2 bayttır; iki ğ 4 bayt eder. Karakter sayısı chars().count() ile 2'dir.

2 Karakter say

Soru
let n = "ışık".chars().____();  // 4
Cevap
let n = "ışık".chars().count();  // 4

Açıklama: chars().count() karakter sayısını verir; len bayt sayar.

3 İfade ve sonuç ("çay")

Kavram Anlamı
len() 4
chars().count() 3
chars().nth(0) Some('ç')
is_empty() false

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