String Builder

StringBuilder, C#’ta dinamik ve verimli bir şekilde metin (string) işlemleri yapmak için kullanılan bir sınıftır. System.Text namespace’i altında bulunur ve özellikle çok sayıda string manipülasyonu gerektiren işlemlerde performans açısından avantaj sağlar.

String vs StringBuilder

C#’ta string immutable (değiştirilemez) bir veri tipidir. Yani, bir string değiştirildiğinde aslında bellekte yeni bir nesne oluşturulur. Bu da sık yapılan değişikliklerde performans sorunlarına neden olabilir.

string text = "Merhaba";
text += " Dünya"; // Bellekte yeni bir string nesnesi oluşur

Bu işlem her değişiklikte yeni bir nesne oluşturduğu için hafıza ve performans açısından verimsizdir.

StringBuilder Kullanımı ile Avantaj:

StringBuilder sb = new StringBuilder("Merhaba");
sb.Append(" Dünya"); // Mevcut nesne değişir, yeni nesne oluşturulmaz

Bu kullanım, özellikle çok sayıda string manipülasyonu yapılıyorsa performansı artırır.

StringBuilder Kullanımı

StringBuilder Tanımlama

using System;
using System.Text; // StringBuilder kullanabilmek için eklenmeli

class Program
{
    static void Main()
    {
        StringBuilder sb1 = new StringBuilder(); // Boş bir StringBuilder
        StringBuilder sb2 = new StringBuilder("Merhaba"); // Başlangıç değeri ile
        StringBuilder sb3 = new StringBuilder(100); // Başlangıç kapasitesi 100 olan
    }
}

Append: String’in sonuna ekleme yapar.

StringBuilder sb = new StringBuilder("Merhaba");
sb.Append(" Dünya");
Console.WriteLine(sb); // Çıktı: Merhaba Dünya

AppendLine – Satır sonu ekler (\n)

sb.AppendLine(" Nasılsın?");
Console.WriteLine(sb);
/*
Çıktı:
Merhaba Dünya
Nasılsın?
*/

Insert – Belirli bir konuma metin ekler

sb.Insert(8, "Sevgili "); 
Console.WriteLine(sb); // Çıktı: Merhaba Sevgili Dünya

Remove – Belirli bir aralıktaki karakterleri siler

sb.Remove(8, 8); // 8. karakterden itibaren 8 karakteri siler
Console.WriteLine(sb); // Çıktı: Merhaba Dünya

Replace – Bir metni başka bir metinle değiştirir

sb.Replace("Dünya", "C#");
Console.WriteLine(sb); // Çıktı: Merhaba C#

Clear – İçeriği tamamen temizler

sb.Clear();
Console.WriteLine(sb.Length); // Çıktı: 0