C# String Methodları – I (EndsWith-StartsWith, ToUpper-ToLower, IndexOf, PadLeft-PadRight, Remove)


Giriş

String method ları bizim sıkça kullanacağımız ve ihtiyaç duyacağımız methodlardır. Hepimizin şimdiye kadar aşağıdaki durumlar ile ya karşılaştık ya da karşılaşacağız;

  • Bir string içerisinde bir string arama
  • String içerisinden bir stringi çıkarma
  • String başka bir string ile başlıyor mu ya da bitiyor mu
  • String içerisindeki bir stringi değiştirme
  • String ifadeyi büyük/küçük harfli yapma
  • Stringi örneğin noktalardan itibaren bölme

Bu işlemleri yapmak için String Methodlardan yararlanacağız.  Bu yazımda anlatacağım Methodlar; EndsWith-StartsWith, ToUpper-ToLower, IndexOf, PadLeft, Remove.

Bu yazının devamında Replace, Split, SubString, ToCharArray, Trim methodlarını anlatacağım.

Hatırlatma ve Dikkat Edilmesi Gerekenler

Bu örneği C# dili ile .net 4.0 versiyonunda Visual Studio 2010 Ultimate programında yazıyorum.

Mantık Yürütme

Türkçe temelli dünyaca geçerli bir programlama dili geliştiremediğimiz için diğer dillerde, tabiki de ingilizce, geliştirilen programlama dillerini kullanıyoruz. Eğer biraz ingilizce bilginiz varsa methodları gördüğünüzde anlayabilir, açıklamalarına dikkat ederek kullanabilirsiniz. Hadi başlayalım.

Kodlama

* EndsWith-StartsWith: Bir string’in ne ile bittiğini/başladığını bulmak için kullanılır. Örnek olarak gelen Url nin “.com/.net” mi olduğunu bulmak istiyoruz. Bool bir değer döndürür. Dizi içerisindesmi “Mahmut” ile başlayan kişileri bulmanız gerekebilir, ya da öğrenci numarası, örneğin benim okul numaram 070535… diye başlıyor, 07 girişlileri bulmak için kullanabilirsiniz.

String UrlUzantisi= “www.mcansozeri.com” ;

if (UrlUzantisi.EndsWith(“.com”))
{
MessageBox.Show(“Evet”);
}

Diğer örnekte ise gelen değer “www.” ile mi başlıyor bunu bulabiliriz.

if (UrlUzantisi.StartsWith(“www.”))
{
MessageBox.Show(“Evet”);
}

* ToUpper-ToLower: Bu method u ben gerçekten seviyorum. Bazen küçük harf/büyük harf olarak bilgiyi saklamanız gerekebilir. Uğraşmadan bir satır ile bu işi halledebilirsiniz. “I” harfini küçülttüğünüz zaman “ı” olmaktadır. Yani bir mail adresini küçültürseniz örneğin “MCS[at]MCANSOZERI.COM” adresini “mcs[at]mcansozerı.com” olarak küçültmektedir. Dikkat etmenizde fayda var. Kullanımına gelirsek;

string AdSoyad = “FENERBAHÇE”;

String KucukHarfli = AdSoyad.ToLower(); // Çıktı olarak bize “fenerbahçe” verecektir.

String BuyukHarfli = KucukHarfli.ToUpper(); // Çıktı olarak “FENERBAHÇE” yi verecektir.

* IndexOf: String içerisinde aradığımız string in kaçıncı karakter(index) olduğunuzu bize int olarak verir, eğer bulamazsa -1 verir. 9 farklı kullanımı bulunmaktadır ben 2 tanesine yer vereceğim.

string Adim = “Türkiye”;

int uKacinci = Adim.IndexOf(‘ü’);  // Burada tek tırnak içerisinde yazıyoruz yani char türünde. Çıktı: 1

int uKacinci = Adim.IndexOf(“y”);  // Burada çifttırnak içerisinde yazıyoruz yani string türünde. Çıktı: 5

* PadLeft-PadRight: Bu gerçekten ilginç bir method. String içerisinde sağdan veya soldan char türünde ekleme yapabiliyoruz. Eğer herhangi bir char yazmazsa otomatik boşluk olarak algılar ve öyle doldurur.

string Madde=”Gazili Olmak Ayrıcalıktır”; // Toplam 25 karakter uzunluğunda

MessageBox.Show(Madde.PadRight(28, ‘.’)); // yazdığınız karakteri 28karakter olana kadar onunla dolduruyoruz buradaki çıktı “Gazili Olmak Ayrıcalıktır…” olacaktır.

MessageBox.Show(Madde.PadLeft(28, ‘.’)); // burada ise çıktımız “…Gazili Olmak Ayrıcalıktır”

*Remove: String içerisinde belli bir index ten başlayarak çıkarma işlemi yapar kısaca.

string TextIcerik = “Microsoft Student Partners”;

TextIcerik.Remove(8); // Ekran çıktısı “Microsoft” tur. Geri kalan kısmı kaldırır.

TextIcerik.Remove(8, 7); // Ekran çıktısı “Microsoft Partners” tur. 8.index ten başlayarak 7karakter kaldırır.

İndirme

İkinci bölümü yazdığımda ikisinin indirilmesini sağlayacağım.

Umarım faydalı bir yazı olmuştur.

İyi kodlamalar


, , , , , ,

  1. #1 by Serhat on April 5, 2011 - 2:29 pm

    Verdiğin bilgiler için teşekkürler Mahmut . Çok işime yaradı…

  2. #3 by cemalper on July 13, 2011 - 1:01 pm

    Verdiğiniz bilgiler için teşekkürler.Bu konu hakkında bişey sormak istiyorum izninizle
    http://www.x.com/index.php?link=http://x.com/a/b/c şeklindeki bir yazıyı
    http://www.x.com/c şekline nasıl ydeğiştirebiliriz.Bir arkadaşımdan indexof ile yapılabilceğini öğrendm.Lastindexof ile c yi alabiliyorum fakat http://www.x.comu alamıyorum.kısaca amacım mesela ilk 4 slaş elemanı textboxtan almak arasına bir sabit eleman girmek ve son slaştan sonraki yazıyı almak
    http://www.x.com/index.php?link=http://x.com/a/b/c
    şeklini
    http://www.x.com/files/c gibi?
    bunu c# ile nasıl yapabilirz.Yardımcı olabilirseniz çok sevinirim

    • #4 by Mahmut Can Sözeri on July 13, 2011 - 1:26 pm

      Öncelikli olarak rica ediyorum. Siz burada, verdiğiniz “link” keyword’unu kullanarak QueryString ile bu bilgiyi alıyorsunuz. Siz URL’i biliyorsanız QueryString ile almanız işlemlerinizi zora sokmayacaktır. QueryString ile aldığınız bu bilgiyi ixdexof tan ziyade split ile bölüm ona göre alabilirsiniz. Split ettikten sonra elemanlarını ona göre alabilirsiniz. Arasına yerleştireceğiz elemanı bir stringte tutup spliten gelen verileri ekleyerek işlemizi yapabilirsiniz. Umarım doğru anladım. İyi çalşmalar. Kolay gelsin

      • #5 by cemalper on July 13, 2011 - 8:59 pm

        Yanıtınız için teşekkürler.Yeni c# öğrenmeye başladığım için tam bilgi sahibi değilim.Fkt benim yapmak istediğime sanırım çözüme ulaştırmıyor.Benim ulaşmak istediğim sonuç tam olarak bu.Elimde 100den fazla http://www.x.com/index.php?link=http://x.com/a/b/c şeklinde adres.var.Ve 100den fazlada http://www.1.com http://www.2.com gibi site var.Bunları http://www.1.com/değişken/c/değişken/değişken yapmam gerekiyor.Yani birnci metin dosyadakileri okuyup “/”dan sonrası almam lazım.diğer metin dosyasındaki linklere sırasıyla bunu yapıştırmalıyım en basitinen.Yani bir döngü ve parçalama yapmalıyım.”/”dan sonrası ve .dan önceki gibi metni almalıyım açıkcası.Bu tarz bişeyi neyle yapabilirim

      • #6 by Mahmut Can Sözeri on July 15, 2011 - 12:55 am

        Önceki soruda ben anlık olarak alıp işlem yapıyorsunuz sanmıştım. Fakat işlem değişmiyor. Yazımda yer alan Split kullanmak işinize yaramayabilir orada string sizi vermelisiniz. Burada Regex.Split’i (using System.Text.RegularExpressions) kullanacağım. Bir döngü içerisinde kullandığınızı düşünürsek en basit anlamda şu şekilde yapabilirsiniz:
        string[] splitedilenler = Regex.Split(“http://www.x.com/index.php?link=http://x.com/a/b/c”, “link=”); //Burada ben “link=” e göre split ettim. Burada iki sonuç geriye döner.
        string son = “http://www.1.com/”; //burada sizin başta vereceğiz string
        //burada splitedilenler den gelen içeriisnde tekrar split edip sonra atabilirsiniz. veya romeve diyerek “http://”‘ı atabilirsiniz.
        son += splitedilenler[1];
        son += “c/”;
        son += “değişken1/”;
        son += “değişken2/”;
        MessageBox.Show(son);

        Söylediğim gibi sizin senaryonuza göre şekillenecektir. Ama bu değişkenleri çekiyorsanız. Bu işinizi görecektir diye düşünüyorum.

        İyi çalışmalar

  3. #7 by cemalper on July 15, 2011 - 12:30 pm

    çok teşekkürler.Mantığını anladım.Emeğiniz için tekrar teşekkürler.

  4. #8 by Kenan on December 18, 2012 - 3:30 pm

    Merhaba, bir string kelimenin son karakterini silmek istiyorum.
    Nasıl yapabilirim?
    teşekkürler.

  5. #10 by Abdullah K. on May 29, 2013 - 12:37 am

    Anlatım tarzını beğendim harika başarılarının devamını dilerim.

  6. #11 by Mustafa on March 15, 2014 - 9:16 pm

    Teşekkürler, çok faydalı oldu güzel anlatmışsın.

  1. 2012 Yılında Blogumun İle İlgili Rakamlar « Mahmut Can Sözeri

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s