C# String Metodları,String Kullanımı,Detaylı Anlatım..

  Bu yazıda C#'ta en temel ve yaygın olarak kullanılan string
metodlarından bazıları detaylı olarak anlatılacaktır..Örnek
kodlar ve kodların çıktılarıda yazının içerisinde verilmiştir.Göreceğimiz metodlar:Insert,Join,Split,Replace,Remove,ToUpper--Lower,PadLeft--Right,Copy,Length,Trim,Concat,Contains,Compare,Equals,Substring,
IndexOf,LastIndexOf,EndWith-StartsWith.
c#-string-kullanimi-kayan-yazi

String Nedir?

String en basit ifadeyle kelimelerden oluşan bir veri türüdür.Bir string ifadesi yazım olarak boşta yazılabilir yada tek bir harften de oluşabilir fakat stringler büyük çoğunlukla kelime yada cümlelerle işlem yaparken kullanırlar.C# dilinde stringleri tırnak içerisinde yazarız.Bu yazıda C#'taki temel string metodları aşağıda resmi görülen örnek uygulama arayüzü üzerinde anlatılacaktır.Kodların hemen altında Sonuç: bölümünde kodların ürettiği çıktıda verilmiştir.
c#-string-kullanimi-1

Temel String Metodları

 

  Insert  Metodu (String Ekleme)

Bu metodu herhangi bir string ifadenin yanına istediğimiz başka bir stringi eklemek için kullanırız.Çeşitli amaçlar  için kullanılabilir.Şimdi metodun en basit kullanımına bakalım.
        private void btnEkle_Click(object sender, EventArgs e)
        {
            string yazi1 = "grafik"; 
            string yazi2 = "veprogramlama";
            yazi1 = yazi1.Insert(6, yazi2);

            textBoxSonuc.Text = yazi1;
        }
             SONUC: grafikveprogramlama    yazar.
 c#-string-kullanimi-2
 Yukarıdaki kodlarda önce iki tane ayrı string değişkeni oluşturuyoruz.Buradaki amacımız yazi1 ismindeki birinci stringin yanına yazi2 ismindeki ikinci stringi metot sayesinde eklemek.Kodlarda görüldüğü gibi insert metodunu çağırıyoruz.Parantez içindeki birinci parametre bize yazi1'in kaçıncı karakterinden sonra yazi2'yi ekleyim? diye soruyor.Burada "grafik" kelimesi 6 karakter olduğu için buraya 6 yazıyoruz.İkinci parametrede zaten yazi2'nin kendisi ve metot yardımıyla stringe basitce ekleme yapmış oluyoruz.
       

        Join Metodu (String Birleştirme)

Join metodunu genellikle string dizilerini aralarına seçtiğimiz bir karakteri ekleyerek birleştirmek için kullanırız.
Oldukça işe yarayan ve pratik bir metoddur.Örnek kullanımını görelim.
        private void btnBirlestir_Click(object sender, EventArgs e)
        {
            string[] kelimeDizisi = {"Photoshop","Flash","illustrator"};

            textBoxSonuc.Text = string.Join("-",kelimeDizisi);
        }
            SONUÇ: Photoshop-Flash-illustrator  yazar.

 Burada öncelikle bir string dizisi tanımlıyoruz.Bu dizinin elemanlarının aralarında orta tire(-) ile birleşip tek bir string haline gelmesini istiyoruz.Yukarıda tek bir satırlık kodla bunun basitce yapıldığı görülüyor.Parantez içindeki birinci parametre arada olmasını istediğimiz karakter,ikinci parametreye ise dizinin adını yazıyoruz ve kolayca isteğimiz karakter araya eklenmiş oluyor.


        Split Metodu (String Ayırma)

Split metodu belirli bir karakter referans alınarak bir cümle içerisinden kelimeleri seçmeye ve ayırmaya arayan bir metoddur.Aşağıda örnek kullanımı verilmiştir.
 private void btnBol_Click(object sender, EventArgs e)
        {
            string kelimeler = "Photoshop,Flash,illustrator";
            string[] kelimeDizisi = kelimeler.Split(',');

            for (int k = 0; k < kelimeDizisi.Length; k++)
              {
               textBoxSonuc.Text += kelimeDizisi[k];
              }
        }
            SONUÇ: PhotoshopFlashillustrator  yazar.
c#-string-kullanimi-3
Bu kodlarda öncelikle kelimeler isminde bir string oluşturuyoruz.Görüldüğü gibi her kelimenin arasında virgül bulunmaktadır.Bu virgül işareti bizim referans karakterimiz olacak.Buna göre kelimeleri bu string içinden tek tek alıp bir diziye atacağız.  kelimeDizisi isminde string dizisini tanımlayıp split metodunu devreye sokuyoruz.Parantez içine ayırma işleminde referans olacak karakterimizi yani burada virgülü yazıyoruz ve kelimeler virgüle göre tek tek diziye atılmış oluyor.Virgülün kendisi kelimelere dahil değildir,sadece bir referans karakteridir.Sonunda bu işlemin doğru yapılıp yapılmadığını kontrol etmek için for döngüsü ile kelimeDizisini elemanlarını textBox'a yazdırıyoruz.   

        Replace Metodu (String Değiştirme)

Replace bir string ifadesinin içinde değiştirilmesini istediğimiz bölümleri değiştirmek amacıyla kullanılır.Aşağıda örnek kullanıma bakalım.       
        private void btnDegistir_Click(object sender, EventArgs e)
        {
            string yazi1 = "grafik ve programlama dersleri";
            string yazi2 = yazi1.Replace("dersleri","videoları");

            textBoxSonuc.Text = yazi2;
        }
            SONUÇ: grafik ve programlama videoları  yazar.
Buradaki örnekte yazi1'in içindeki "dersleri" kelimesinin "videoları" kelimesiyle değiştirilmesini istiyoruz.
Kodlarda anlatıldığı gibi yazi2 adında ikinci bir string oluşturup replace metodunu kullanıyoruz.Parantez içindeki birinci parametre eski yazı,ikinci parametreyse yeni yazı olmalıdır.Sonuca baktığımızda yazıların değiştiğini görüyoruz.
       

        Remove Metodu (Silme)

Remove metodu bir stringin içinden istediğimiz bölümleri silmek için kullanılır.Kodlara bakalım.
        private void btnSil_Click(object sender, EventArgs e)
        {
            string yazi1 = "ahmet ali ayşe";
            string yazi2 = yazi1.Remove(9,5);

            textBoxSonuc.Text = yazi2;
        }
            SONUÇ: ahmet ali  yazar.
Yukarıdaki kodlarda sadece ahmet ve ali isimlerinin kalmasını ve aliden sonraki harflerin silinmesini istiyoruz.Yine ikinci bir string tanımlayıp remove metodu ile işlemleri yapıyoruz.Burada parantez içindeki birinci parametre silme işlemine kaçıncı karakterden başlanacağını gösteriyor.İkinci parametreyse birinci parametreden sonra kaç karakter silineceğini gösteriyor.Örneğimizde 5 karakter olduğu için buraya 5 yazıyoruz ve sonuçta sadece ahmet ali yazdığını görüyoruz.
       

        ToUpper--ToLower Metodları (Harf Çevirme)

        ToUpper ve ToLower metodları ile stringleri kolayca büyük yada küçük harfe çevirebilirsiniz.Örnekler:
private void btnBuyukHarf_Click(object sender, EventArgs e)
{
string yazi = "google chrome otomatik çeviri özelliğine sahiptir";
textBoxSonuc.Text = yazi.ToUpper();
} 
            SONUÇ: GOOGLE CHROME OTOMATİK ÇEVİRİ ÖZELLİĞİNE SAHİPTİR  yazar.
private void btnKucukHarf_Click(object sender, EventArgs e)
{
string yazi = "GOOGLE CHROME OTOMATİK ÇEVİRİ ÖZELLİĞİNE SAHİPTİR";
textBoxSonuc.Text = yazi.ToLower();
}
            SONUÇ: google chrome otomatik çeviri özelliğine sahiptir  yazar. 

        PadLeft Metodu (Sola Karakter Ekleme)

PadLeft metodu ile bir string ifadeyi istedeğimiz karakter sayısına tamamlarız.Kullanıma bakalım.
        private void btnSolaEkle_Click(object sender, EventArgs e)
        {
            string yazi1 = "grafik";
            string yazi2 = yazi1.PadLeft(10, '*');

            textBoxSonuc.Text = yazi2;
        }
            SONUÇ: ****grafik  yazar.
c#-string-kullanimi-4

Kodlardan da görüldüğü gibi "grafik" isminde 6 karakterlik bir stringimiz var ve bunu 10 karaktere tamamlamak istiyoruz.yazi2 isminde ikinci bir string oluşturup PadLeft metodu ile bunu kolayca yapıyoruz.Birinci parametre olmasını istediğimiz karakter sayısı,ikinci parametre ise boşlukları hangi karakterle tamamlamak istediğimizdir.
   

                PadRight Metodu (Sağa Karakter Ekleme)

PadRight metodu PadLeft ile birebir aynı işlemi yapar.Aradaki tek fark PadLeft sola karakter eklerken PadRight sağa karakter ekler.
        private void btnSagaEkle_Click(object sender, EventArgs e)
        {
            string yazi1 = "grafik";
            string yazi2 = yazi1.PadRight(10, '*');

            textBoxSonuc.Text = yazi2;
        }
            SONUÇ: grafik****  yazar.    
 

        string.Copy Metodu (Kopyalama)

Bir string ifadenin aynısını başka bir stringe kopyalamak için kullanılır.Örnek:
         private void btnKopyala_Click(object sender, EventArgs e)
        {
            string yazi1 = "web tasarım";
            string yazi2 = string.Copy(yazi1);

            textBoxSonuc.Text = yazi2;
        }
            SONUÇ: web tasarım  yazar.
Burada yazi2 = yazi1; şeklinde de yazılsaydı sonuç yine değişmezdi.Her iki kullanımda yapılabilir,sonuç değişmez.       

        Length Metodu (String Uzunluğunu Bulma)

Length metodu ile string ifadenin kaç karakterden oluştuğu bulunabilir.
        private void btnHarfSayisi_Click(object sender, EventArgs e)
        {
            string yazi = "Google Android";
            int harfSayisi = yazi.Length;

            textBoxSonuc.Text = harfSayisi.ToString();
        }
            SONUÇ: 14  yazar.
Kodlarda görüldüğü gibi int türünden bir değişken tanımlayıp Length metodunun çağırarak yazi stringinin karakter sayısını int türünden değişkene atıyoruz.Sonrasında bu Int türünden değişkeni ToString metodu ile tekrar string türüne dönüştüp TextBox'ta görünmesini sağlıyoruz.Bu işlemin aynısını aşağıdaki kodlada yapabilirdik,ikisinde de sonuç değişmez.
        string yazi = "Google Android";
        textBoxSonuc.Text = yazi.Length.ToString();      
Burada da Int türünden değişkeni aradan çıkarıp doğrudan Length metodunu çağırıyoruz.İki şekilde de kullanılabilir.Harf sayısı verilirken boşluklar çıkarılmaz,onlarda harf sayısına dahildir.
       

        Trim Metodu (Boşluğu Alma)

Trim metodu stringin içindeki boşlukların alınması için kullanılır.3 kullanım şekli vardır.
  1.  TrimStart:String ifadenin başındaki boşlukları alır.
  2.  TrimEnd:String ifadenin sonundaki boşlukları alır.
  3.  Trim:Stringin baş ve sonundaki tüm boşlukları alır.Örnek uygulamaya bakalım.
   private void btnBoslukAl_Click(object sender, EventArgs e)
   {
   string yazi1 = "         Asp.net";
   string yazi2 = "Asp.net         ";
   string yazi3 = "     Asp.net     ";

   textBoxSonuc.Text = yazi1.TrimStart() + yazi2.TrimEnd() + yazi3.Trim();
   }
            SONUÇ: Asp.netAsp.netAsp.net  yazar.
c#-string-kullanimi-5

Örnekte solunda,sağında ve her iki tarafında boşluk olan 3 tane string tanımlıyoruz ve sırasıyla TrimStart(),TrimEnd() ve Trim metodlarını() metodlarını çağırarak bu boşlukları temizliyoruz.Trim() metodu stringin içindeki boşlukları temizlemez,sadece baştaki ve sondaki boşlukları alır.
       

        Concat Metodu (String Birleştirme)

Concat() metodu ile stringler birleştirilir.Aynı birleştirme işi + operatörü ilede yapılabilir.Sonuç değişmeyecektir. Örneğe bakalım:
        private void bntConcat_Click(object sender, EventArgs e)
        {
            string yazi1 = "grafik ";
            string yazi2 = "ve programlama";
            string birlesim = string.Concat(yazi1, yazi2);

            textBoxSonuc.Text = birlesim;
        }
            SONUÇ: grafik ve programlama  yazar.
Burada yazi1 ve yazi2 isminde iki tane ifademiz var.birlesim isminde bir string tanımlayıp yazi1 ve yazi2'yi birleştiriyoruz.
        string birlesim = string.Concat(yazi1, yazi2); yerine:
        string birlesim = yazi1 + yazi2;
olarakta yazılabilir.Sonuç değişmez.
       

        Contains Metodu (String İçinde Arama Yapma)

Contains() string ifadenin içinde harf bazında arama yapılmasını sağlayan bir metoddur.Kullanımı:
        private void btnContains_Click(object sender, EventArgs e)
        {
            string yazi = "C# nesne tabanlı bir dildir";
            bool arama = yazi.Contains("n");

            textBoxSonuc.Text = arama.ToString();
        }
            SONUÇ: True  yazar.
Üstteki kodlarda bool türünden bir mantık değişkeni tanımlayıp Contains() metodunu çağırıyoruz.Eğer istediğimiz harf varsa bool değişkeni True olur,yoksa False döner.Burada önemli bir nokta metod kullanımında büyük ve küçük harf duyarlılığı vardır.Örneğin a harfini aradığımızı varsayalım.Eğer bunu A olarak yazarsak sonuç False olarak dönecektir.Diğer bir noktada Contains() metodu kelimeleri aramak için uygun değildir,çünkü harf bazlı çalışır.          

        Compare Metodu (String Karşılaştırma)

Compare() verilen stringler birbiriyle aynı mı?,karakter olarak hangisi uzun?  yada alfabetik değer olarak hangisi daha yüksek? gibi karşılaştırmalar için kullanılır.Compare() metodunun çeşitli kullanım şekillleri vardır.Burada bunlardan 2 tanesini göreceğiz.

1.Kullanım:   Compare(String1,String2) :
 String1 String2'den büyükse artı değer,küçükse eksi değer,iki string eşitse 0 olarak döner.Örnek kullanıma bakalım:
private void btnCompare_Click(object sender, EventArgs e)
{
string yazi1 = "Photoshop";
string yazi2 = "Photoshop";
int karsilastirma = string.Compare(yazi1, yazi2);

textBoxSonuc.Text = karsilastirma.ToString();
}
            SONUÇ: 0  yazar.
c#-string-kullanimi-6

Burada yazi1 ve yazi2 birebir aynıdır ve sonuç olarak 0 yazar.Eğer yazı1 "Photo" olsaydı bu durumda -1 yazardı.Eğer yazı2 "Photo" olsaydı 1 yazardı.Burada önemli bir noktada bu metodda büyük-küçük harf duyarlılığı vardır.Yani "Photoshop" ile "photoshop" aynı değildir.Karşılaştırma yapıldığında 1 yazar.Eğer büyük-küçük harf duyarlılığının olmasını istemiyorsak int'le başlayan satırı aşağıdaki şekilde değiştirmeliyiz.

                int karsilastirma = string.Compare(yazi1, yazi2,true);
Yukardaki kodda metoda üçüncü bir mantık parametresi ekleyerek harf duyarlılığı durumunu belirtiyoruz.Eğer true olursa harf duyarlılığını dikkate alma,false olursa dikkate al anlamına geliyor.
       
2.Kullanım:    string.Compare(String1,SıraNo1,String2,SıraNo2,HarfAdeti)
        Yukarıdaki metodun parametrelerine bakalım.
        String1:String türünden karşılaştıracağımız birinci yazi.
        SıraNo1:Karşılaştırmanın String1'in kaçıncı karakterinden sonra başlamasını istiyorsak buraya bu sıra numarasını yazıyoruz.SıraNo1 Int türünden olmalıdır,yani rakam olmalıdır.
        String2:String türünden karşılaştıracağımız ikinci yazi.
        SıraNo2:String2'nin kaçıncı karakterinden sonra karşılaştırmanın başlamasını istiyorsak yine Int türünden buraya yazıyoruz.
        HarfAdeti:Toplam kaç karakterin karşılaştırılacağını buraya yazıyoruz.
        Örnek kullanıma bakalım:
         private void btnCompare_Click(object sender, EventArgs e)
        {
            string yazi1 = "Grafik ve Programlama Dersleri";
            string yazi2 = "Grafik ve Programlama Dersleri";
            int karsilastirma = string.Compare(yazi1,22,yazi2,22,8);

            textBoxSonuc.Text = karsilastirma.ToString();
        }
            SONUÇ: 0  yazar.     
Burada "Dersleri" kelimesinin karşılaştırılmasını istiyoruz."Dersleri" kelimesinin "D" harfi 23.karakterdir.Biz bu harften itibaren karşılaştırılmanın yapılmasını istediğimiz için SıraNo'lara 22 yazdık.Yani yazi1'in
22.karakterinden sonra ve yazi2'nin 22.karakterinden sonraki 8 karakteri karşılaştır anlamına gelmektedir.
Karakterler aynı olduğu için 0 sonucu yazar.Buradaki kodlarda yine büyük-küçük harf duyarlılığı vardır.Yani
 "Dersleri" ile "dersleri" aynı değildir.Eğer karşılaştırma yapılırsa sonucun "0" yazmadığı görünür.Bunu engellemek isteseydik int satırını aşağıdaki şekilde kullanmamız gerekiyordu.
       
        int karsilastirma = string.Compare(yazi1,22,yazi2,22,8,true);
 En sona true parametresini yazarak metoda büyük-küçük harfi dikkate alma diyoruz.
       

        CompareTo Metodu (String Karşılaştırma)

Compare() ile aynı işlemi yapar fakat bu metodda harf duyarlılığını ayarlama imkanı yoktur.Harfler birebir aynıysa doğru sonucu verir.Compare() metodunun değişik bir yazım şekli diyebiliriz.Örneğe bakalım:
private void btnCompareTo_Click(object sender, EventArgs e)
 {
            string yazi1 = "Grafik ve Programlama";
            string yazi2 = "Grafik ve Programlama Dersleri";
            int karsilastirma = yazi1.CompareTo(yazi2);
            textBoxSonuc.Text = karsilastirma.ToString();
 }
            SONUÇ: -1  yazar.
Bu örnekte iki yazı aynı olmadığı için -1 yazdı.Eğer birinci yazının karakter sayısı küçükse -1,birinci yazının karakter sayısı büyükse 1,yazılar birebir aynıysa(büyük-küçük harf ve karakter sayısı olarak) bu durumda 0 yazar.      
       

        Equals Metodu (String Karşılaştırma)

Compare() ile aynı işi yapar.Aradaki fark Compare()'de karşılaştırma sonucunu Int türünden değişkene atarken,Equals()'da bool türünden değişkene atıyoruz.Örnek:
        private void btnEquals_Click(object sender, EventArgs e)
        {
            string yazi1 = "Grafik ve Programlama Dersleri";
            string yazi2 = "Grafik ve Programlama Dersleri";
            bool karsilastir = string.Equals(yazi1, yazi2);

            textBoxSonuc.Text = karsilastir.ToString();
        }
            SONUÇ: True  yazar.
Buradaki kodlarda aynı Compare()'de olduğu gibi stringleri tanımlayıp karşılaştırma yapıyoruz.Eğer stringler farklı olsaydı False yazardı.Equals() metodunda harfler birebir aynı olmalıdır.Eğer harf farklılığı varsa önce büyük-küçük harfe çevirilip sonrasında karşılaştırma yapılabilir.
       

        Substring Metodu (String Seçme)

Substring() metodu ile belirli bir karakterden sonra istenilen string bölümleri seçilebilir.Örnek:
        private void button5_Click(object sender, EventArgs e)
        {
            string yazi = "Photoshop Flash Dreamweaver illustrator";
            string yazi2 = yazi.Substring(10);

            textBoxSonuc.Text = yazi2 + " " + yazi3;
        }
            SONUÇ: Flash Dreamweaver illustrator  yazar.
Yukarıdaki kodlarda yazi stringinin 10.karakterinden sonrasını seç komutunu veriyoruz.Substring () metoduna istenirse ikinci bir parametre daha eklenebilir.Örnek kod:
                                  string yazi = yazi.Substring(16,11);
           SONUÇ: Dreamweaver  yazar.
Buradaki birinci parametre seçime kaçıncı karakterden başlanacağı,ikinci parametreyse kaç karakter seçileceğidir.
       

        IndexOf Metodu (String Arama)

IndexOf() metodu ile bir string içinde harf yada kelime bazında arama yapılabilir.Çeşitli kullanım şekilleri vardır.Bunlara bakalım:
        private void bntIndexOf_Click(object sender, EventArgs e)
        {
            string yazi = "Grafik ve Programlama Dersleri";
            int siraNo = yazi.IndexOf("Ders");

            textBoxSonuc.Text = siraNo.ToString();
        }

            SONUÇ: 22 yazar.
Bu kullanımda "Ders" kelimesini aratıyoruz ve sonuç olarak 22 çıkıyor.Yani Ders kelimesi 22.karakterden sonra başlıyor anlamındadır.Burada önemli bir nokta bu metod aranan harf yada kelimeyi ilk bulduğu yerin numarasını verir.Mesela yukarıdaki kelimede "a" harfini aradığımızı varsayalım.Cümlenin içinde 4 tane "a" harfi vardır fakat metod 3.sıradaki "a" harfinden bir önceki sırayı yani 2 rakamını döner.Eğer harf yada kelime bulunamazsa-1 döner.Bu metodun diğer kullanım şekilleri:
        private void bntIndexOf_Click(object sender, EventArgs e)
        {
            string yazi = "Grafik ve Programlama Dersleri";
            int siraNo = yazi.IndexOf("a",3);

            textBoxSonuc.Text = siraNo.ToString();
        }
            SONUÇ: 15 yazar.
Yukarıdaki kodlarda parantez içindeki ikinci parametre sayesinde aramaya 3.harften sonra başlıyoruz.Burada 3.harften sonraki ilk "a" harfini buldu ve bunun 15.sırada olduğunu ekrana yazdı.Int le başlayan satıra bir parametre daha ekleyip aşağıdaki gibi kullanabiliriz:
        int siraNo = yazi.IndexOf("a",3,15);
Buradaki ikinci parametre yine aramaya kaçıncı karakterden başlanacağı,üçüncü parametre ise ikinci parametreden itibaren kaç karaktere kadar arama yapılacağıdır.Bu örnekte stringin tamamında arama yapılmaz 3.harften sonraki 15 karakter içinde arama yapılır.
       

        LastIndexOf Metodu (String Arama)

Bu metod IndexOf() ile aynı işi yapar fakat aramaya sondan başlar.Aramaya sondan başlasada yine sıra numarasını birinci karakterden itibaren verir.Örnek:
        private void btnLastIndexOf_Click(object sender, EventArgs e)
        {
            string yazi = "Grafik ve Programlama Dersleri";
            int siraNo = yazi.LastIndexOf("s");

            textBoxSonuc.Text = siraNo.ToString();
        }
            SONUÇ: 25  yazar.
c#-string-kullanimi-7

Aynen IndexOf() metodunda olduğu gibi bu metod içinde ikinci ve üçüncü parametreler eklenebilir.   
         

EndsWith--StartsWith Metodları

EndsWith() metodu ile stringin aradığımız kelimeyle bitip bitmediğinin kontrolü yapılır.Örnek kullanım:
       private void btnEndsWith_Click(object sender, EventArgs e)
        {
            string yazi = "Grafik ve Programlama Dersleri";
            bool kontrol = yazi.EndsWith("Dersleri");

            textBoxSonuc.Text = kontrol.ToString();
        }

            SONUÇ: True  yazar.
Burada "Dersleri" yerine "rsleri" yada "leri" de yazsaydık sonuç True çıkardı.Çünkü metod kelime yada harf ayrımı yapmıyor.Eğer aranan kelime yada harf grubu en sondaysa True döner,değilse False döner.StartsWith() metoduda EndsWith() ile aynı görevi yapar aradaki fark sadece aranan kelime yada harfle başlayıp başlamadığını kontrol eder.Örnek kod:
       
        bool kontrol = yazi.StartsWith("Grafik");