Akis Forum

Welcome to AkisForum.com! Register your free account today and become a member! Once signed in, you'll be able to dive into learning to code, discovering new tools, and keeping up with the latest trends. AkisForum is where benefit, knowledge, and sharing come together. Join us to add your own topics and posts, and connect with other members through your private inbox!

C# ile String İşlemlerine Giriş: Metinleri Yönetme Sanatı

  • Konuyu Başlatan Konuyu Başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi

Admin

Herşeyi Burada Bulabilirsin
Yönetici
Administrator
Akisor
C# ile String İşlemlerine Giriş: Metinleri Yönetme Sanatı

Merhaba sevgili yazılımcı dostlar,

Bugün sizlerle C# programlamanın en temel ve en çok kullanılan konularından biri olan **string (metin) işlemleri** hakkında konuşacağız. Neredeyse her uygulamada kullanıcıdan aldığımız verileri işlerken, mesajları biçimlendirirken veya dosya yolları üzerinde çalışırken string'lere ihtiyaç duyarız. Bu rehberde, C#'ta string'lerle nasıl etkili bir şekilde çalışabileceğinizi, sık kullanılan metotları ve pratik örnekleri bulacaksınız.

Hazırsanız, metin dünyasına dalalım!

-- -- --​

String Nedir?

C#'ta string, karakter dizilerini temsil eden bir veri tipidir. Aslında bir nevi char (karakter) dizisidir. Örneğin, "Merhaba Dünya!" bir string'dir. String'ler değişmez (immutable) yapıdadır; yani bir string üzerinde yaptığınız her işlem aslında yeni bir string oluşturur, mevcut string'i değiştirmez.

Temel String Tanımlama ve Kullanım

Bir string değişkeni tanımlamak oldukça basittir:

C#:
string mesaj = "Merhaba, C#!";
string isim = "Ahmet";
string soyisim = "Yılmaz";

// String birleştirme (concatenation)
string tamAd = isim + " " + soyisim; // Çıktı: "Ahmet Yılmaz"

// String interpolasyonu (daha modern ve okunaklı)
string selam = $"Hoş geldiniz, {isim} {soyisim}!"; // Çıktı: "Hoş geldiniz, Ahmet Yılmaz!"

Console.WriteLine(mesaj);
Console.WriteLine(tamAd);
Console.WriteLine(selam);

-- -- --​

Sık Kullanılan String Metotları

C# bize string'ler üzerinde çalışmak için zengin bir dizi metot sunar. İşte en çok işimize yarayacaklardan bazıları:

1. Length: String Uzunluğunu Bulma

Bir string'in kaç karakterden oluştuğunu öğrenmek için kullanılır. Boşluklar da karakter olarak sayılır.

C#:
string kelime = "Programlama";
int uzunluk = kelime.Length; // uzunluk = 11

Console.WriteLine($"'{kelime}' kelimesinin uzunluğu: {uzunluk}");

2. ToUpper() ve ToLower(): Harfleri Büyük/Küçük Yapma

Metni tamamen büyük harfe veya tamamen küçük harfe dönüştürmek için kullanılır.

C#:
string ornekMetin = "Bu Bir ÖRNEK Metin.";
string buyukHarf = ornekMetin.ToUpper(); // buyukHarf = "BU BİR ÖRNEK METİN."
string kucukHarf = ornekMetin.ToLower(); // kucukHarf = "bu bir örnek metin."

Console.WriteLine(buyukHarf);
Console.WriteLine(kucukHarf);

3. Contains(): Metin İçerisinde Arama

Bir string'in başka bir alt string içerip içermediğini kontrol eder. Sonuç olarak true veya false döner.

C#:
string cumle = "C# öğrenmek çok eğlenceli!";
bool iceriyorMu = cumle.Contains("öğrenmek"); // iceriyorMu = true
bool icermiyorMu = cumle.Contains("Java");   // icermiyorMu = false

Console.WriteLine($"'öğrenmek' kelimesi cümlenin içinde mi? {iceriyorMu}");
Console.WriteLine($"'Java' kelimesi cümlenin içinde mi? {icermiyorMu}");

4. StartsWith() ve EndsWith(): Başlangıç/Bitiş Kontrolü

Bir string'in belirli bir metinle başlayıp başlamadığını veya bitip bitmediğini kontrol eder.

C#:
string dosyaAdi = "raporlarim.pdf";
bool pdfMi = dosyaAdi.EndsWith(".pdf"); // pdfMi = true
bool basliyorMu = dosyaAdi.StartsWith("rapor"); // basliyorMu = true

Console.WriteLine($"Dosya adı .pdf ile bitiyor mu? {pdfMi}");
Console.WriteLine($"Dosya adı 'rapor' ile başlıyor mu? {basliyorMu}");

5. IndexOf() ve LastIndexOf(): Karakter/Metin Konumunu Bulma

Belirli bir karakterin veya metnin string içindeki ilk veya son geçtiği yerin indeksini (konumunu) bulur. Bulamazsa -1 döner. İndeksler 0'dan başlar.

C#:
string metin = "Programlama, çok güzel bir dildir.";
int ilkA = metin.IndexOf('a'); // ilkA = 3 (P r o g [a]...)
int sonL = metin.LastIndexOf('l'); // sonL = 29 (d i l d i [r] . )

Console.WriteLine($"'a' harfinin ilk geçtiği yer: {ilkA}");
Console.WriteLine($"'l' harfinin son geçtiği yer: {sonL}");

6. Substring(): Metin Bölme

Bir string'in belirli bir kısmını (alt string) almak için kullanılır.
Kod:
Substring(başlangıç_indeksi)
: Belirtilen indeksten başlayarak string'in sonuna kadar alır.
Kod:
Substring(başlangıç_indeksi, uzunluk)
: Belirtilen indeksten başlayarak belirtilen uzunlukta alır.

C#:
string cumle = "Bugün hava çok güzel.";
string kelime = cumle.Substring(6, 4); // kelime = "hava" (6. indeksten itibaren 4 karakter)
string kalan = cumle.Substring(11);   // kalan = "çok güzel." (11. indeksten sona kadar)

Console.WriteLine(kelime);
Console.WriteLine(kalan);

7. Replace(): Metin Değiştirme

Bir string içindeki belirli bir karakteri veya alt string'i başka bir karakter veya alt string ile değiştirir.

C#:
string fiyat = "120.50 TL";
string yeniFiyat = fiyat.Replace(".", ","); // yeniFiyat = "120,50 TL"
string yeniDoviz = fiyat.Replace("TL", "USD"); // yeniDoviz = "120.50 USD"

Console.WriteLine(yeniFiyat);
Console.WriteLine(yeniDoviz);

8. Trim(), TrimStart(), TrimEnd(): Boşlukları Temizleme

Bir string'in başındaki ve/veya sonundaki boşluk karakterlerini (veya belirtilen karakterleri) temizler.

C#:
string kullaniciAdi = "   admin   ";
string temizKullaniciAdi = kullaniciAdi.Trim(); // temizKullaniciAdi = "admin"

string basBoslukSilindi = kullaniciAdi.TrimStart(); // basBoslukSilindi = "admin   "
string sonBoslukSilindi = kullaniciAdi.TrimEnd();   // sonBoslukSilindi = "   admin"

Console.WriteLine($"'{temizKullaniciAdi}'");

9. Split(): String'i Dizilere Ayırma

Bir string'i belirli bir ayraç (delimiter) kullanarak parçalara ayırır ve bir string dizisi (string[]) olarak geri döndürür.

C#:
string urunler = "Elma,Armut,Muz,Çilek";
string[] urunDizisi = urunler.Split(','); // urunDizisi = {"Elma", "Armut", "Muz", "Çilek"}

foreach (string urun in urunDizisi)
{
    Console.WriteLine(urun);
}

10. Join(): Diziyi String'e Birleştirme

Split() metodunun tam tersidir. Bir string dizisini, belirtilen bir ayraç kullanarak tek bir string'de birleştirir.

C#:
string[] parcalar = {"Kırmızı", "araba", "çok", "hızlı."};
string birlesikCumle = string.Join(" ", parcalar); // birlesikCumle = "Kırmızı araba çok hızlı."

Console.WriteLine(birlesikCumle);

-- -- --​

Püf Noktaları ve Dikkat Edilmesi Gerekenler

  • Büyük/Küçük Harf Duyarlılığı:
    Kod:
    Contains()
    ,
    Kod:
    StartsWith()
    ,
    Kod:
    EndsWith()
    ,
    Kod:
    IndexOf()
    gibi metotlar varsayılan olarak büyük/küçük harf duyarlıdır. Eğer duyarlı olmamasını isterseniz, genellikle
    Kod:
    StringComparison.OrdinalIgnoreCase
    gibi parametreler kullanmanız veya string'i önce
    Kod:
    ToUpper()
    ya da
    Kod:
    ToLower()
    ile dönüştürmeniz gerekebilir.
  • Değişmezlik (Immutability): Unutmayın ki string metotları orijinal string'i değiştirmez, yeni bir string döndürür. Bu yüzden sonucu bir değişkene atamanız önemlidir:
    Kod:
    string yeniMetin = eskiMetin.Replace("x", "y");
  • Performans: Çok fazla string birleştirme veya değiştirme işlemi yapacaksanız (
    Kod:
    +
    operatörü veya
    Kod:
    Replace()
    gibi),
    Kod:
    StringBuilder
    sınıfını kullanmak performansı önemli ölçüde artırabilir. Özellikle döngüler içinde string işlemleri yapıyorsanız bunu aklınızda bulundurun.

---

Umarım bu rehber, C# ile string işlemleri konusunda sizlere sağlam bir temel sunmuştur. Bu metotları kullanarak metinler üzerinde birçok farklı manipülasyon yapabilirsiniz. Denemeler yapmaktan ve farklı senaryoları uygulamaktan çekinmeyin!

Sorularınız veya eklemek istedikleriniz olursa lütfen yorumlarda belirtin.

İyi kodlamalar!
 
Geri
Üst