CodeBlanks Logo Icon CodeBlanks

StringBuffer

StringBuffer ile verimli dize birleştirme öğrenirsin.

StringBuffer

Çok sayıda dizeyi + ile birleştirmek her seferinde yeni bir dize yaratır; bu yüzden döngülerde yavaştır. StringBuffer ise içten büyüyen, değiştirilebilir bir dize oluşturur. write ile ekler, sonunda toString() ile son dizeyi verirsin. Bir döngüde yüzlerce parçayı birleştirirken fark çok büyüktür.

Örnek: final sb = StringBuffer(); sb.write("a"); sb.write("b"); print(sb.toString());. writeln her ekten sonra yeni satır koyar. clear içeriği boşaltır. isEmpty ile doluluğu denetlersin. Biriktirme görevleri için idealdir.

Uygulama Sıra sende: StringBuffer ile biriktir

Bir StringBuffer oluştur ve bir for döngüsüyle 0'dan 3'e kadar (3 hariç) sayıları aralarına virgül koyarak ekle. Sonucu toString() ile alıp print ile yazdır.

Başlangıç kodu

main.dart
void main() {
  // StringBuffer oluştur
  // for döngüsüyle 0,1,2 sayılarını virgülle ekle
  // toString() ile yazdır
}

Örnek çözüm

main.dart
void main() {
  final sb = StringBuffer();
  for (var i = 0; i < 3; i++) {
    if (i > 0) sb.write(",");
    sb.write(i.toString());
  }
  print(sb.toString());
}

Beklenen çıktı

0,1,2

write ve writeln

write tek bir parça ekler; writeln her eklemeden sonra yeni satır karakteri de koyar. Bir günlük dosyası oluştururken her satırın ayrı olmasını istiyorsan writeln kullanırsın. writeAll ise bir liste alır ve her öğeyi seçtiğin bir ayraçla ekler; join'e benzer ama bir StringBuffer'a yazar.

Tamponu boşaltmak için clear çağrılır. length özelliği şu anki karakter sayısını verir. isEmpty ve isNotEmpty ile doluluk denetlenir. Tamponu yeniden kullanmak istediğinde clear işine yarar.

Soru ve cevaplar

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

1 StringBuffer oluştur

Soru
final sb = ____();
Cevap
final sb = StringBuffer();

Açıklama: StringBuffer() boş bir tampon yaratır.

2 Çok sayıda dize birleştirmesinde en verimli yöntem?

main.dart
final sb = StringBuffer();
for (var i = 0; i < 1000; i++) {
  sb._____(i.toString());
}
  • write Doğru cevap
  • concat
  • addAll
  • append

Açıklama: write ile StringBuffer'a ek yapılır.

3 StringBuffer eşleştir

Kavram Anlamı
write tek parça ekler
writeln satır sonuyla ekler
writeAll listeyi ekler
clear tamponu boşaltır

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