CodeBlanks Logo Icon CodeBlanks

StringBuilder

StringBuilder ile verimli dize birleştirme öğrenirsin.

StringBuilder: verimli metin birleştirme

Kotlin'de String değiştirilemez; + ile her ekleme yeni nesne yaratır. Döngü içinde çokça birleştirme yapacaksan StringBuilder daha verimlidir.

val sb = StringBuilder()
sb.append("Merhaba")
sb.append(" ")
sb.append("dünya")
val sonuc = sb.toString()
// "Merhaba dünya"

StringBuilder metni yerinde büyütür; her eklemede yeni nesne oluşmaz. İşin bitince toString ile nihai dizeyi alırsın. Yüzlerce birleştirme yaparken hız farkı belirgindir.

StringBuilder ve String farkı

String değiştirilemez; + her seferinde yeni dize kurar. StringBuilder ise değiştirilebilir; append aynı nesneyi büyütür.

var s = "a"
s = s + "b"   // yeni String nesnesi
val sb = StringBuilder("a")
sb.append("b")  // aynı nesne

Yüzlerce eklemede + yavaşlar; çünkü her seferinde kopyalama yapılır. StringBuilder bu yükten kurtulur. Tek satırlık birleştirme için + rahatça kullanılır.

Uygulama Üç parçayı birleştir

Bir StringBuilder oluştur; içine "Merhaba", ", " ve "dünya" değerlerini append ile ekle. toString ile sonucu al ve yazdır.

Başlangıç kodu

Main.kt
fun main() {
    // Bir StringBuilder oluştur
    // Üç parçayı append ile ekle
    // toString ile sonucu yazdır
}

Örnek çözüm

Main.kt
val sb = StringBuilder()
sb.append("Merhaba")
sb.append(", ")
sb.append("dünya")
println(sb.toString())

Beklenen çıktı

Merhaba, dünya

Soru ve cevaplar

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

1 Senaryo ve araç eşleştir

Kavram Anlamı
Tek seferde birleştirme String +
Döngü içinde birleştirme StringBuilder
Nihai metni alma toString
Boş builder başlatma StringBuilder()

2 Boşluğu doldur: StringBuilder tanımla

Soru
val sb = ____()
Cevap
val sb = StringBuilder()

Açıklama: StringBuilder() boş bir builder oluşturur.

3 Döngü içinde 1000 kez birleştirme yapacaksın. Hangisi daha hızlı?

  • String ve +
  • Regex
  • StringBuilder ve append Doğru cevap
  • matches

Açıklama: StringBuilder her eklemede yeni nesne oluşturmaz.

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