StringBuilder
- Kotlin kursu
- Başlangıç
- Ders 91/116
- 5 dk
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ı nesneYü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
fun main() {
// Bir StringBuilder oluştur
// Üç parçayı append ile ekle
// toString ile sonucu yazdır
}Örnek çözüm
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
val sb = ____()
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.