String’i (Yazıyı) belli karakterlere göre parçalama C# Ders 33

String’i (Yazıyı) belli karakterlere göre parçalama C# Ders 33

Daha fazla bilgi için : www.gorselprogramlama.com

Split: String ifadelere ait bir özelliktir.Bu özellik string olarak tanımlanmış bir değişken,textbox,label vb nesnelere uyguanabilir.Belirlenen karaktere göre parçalama işlemi yapar.dizi olarak string bir değişken tanımlamamız gerekir.Parçalama işlemi bu dizi değişkenine atanmalıdır.Parçalanan ifadeler diziye eklenmiş olur.Dizinin 0. elemanı birinvi parçalanan string,1. eleman parçalanan ikinci string diye devam eder. Örneklerle daha anlaşılır olacaktır.

Örnek : textBox1.Text.Split(‘  ‘),label1.Text.Split ( ‘  . ‘),kelime.Split(‘ & ‘),comboBox1.Text.Split( ‘ + ‘ ),listBox1.Text.Split ( ‘ , ‘ ) gibi.

Örnek:

[code language=”csharp”]

private void parcala_Click(object sender, EventArgs e)

{

string[] parcalar;

parcalar = “www gorsel programlama com”.Split(‘ ‘);

label1.Text = parcalar[0];

}

[/code]

labelde 0.elemanı göster dediğimiz için parçala butonuna basıldığında www  yazar.(splitten sonra tek tırnak içinde boşluk kullandğımız için boşluğa göre parçalama işlemi gerçekleşir.Bu karakteri değiştirebilirsiniz.)label1.Text = parcalar[1]; olsaydı label’da gorsel yazısı gözükürdü,label1.Text = parcalar[2]; olsaydı label’de programlama yazısı gözükürdü gibi.

Örnek:

[code language=”csharp”]

private void Form1_Load(object sender, EventArgs e)

{

string[] parcalar;

parcalar = “www.gorselprogramlama.com”.Split(‘.’);

foreach (string i in parcalar ) //parcalar dizisiniz tüm elemanları listBox’ a eklenir.

{

listBox1.Items.Add(i);

}

}

[/code]

Daha fazla bilgi için : www.gorselprogramlama.com

Örnek:

[code language=”csharp”]

private void parcala_Click(object sender, EventArgs e)

{

string[] parcalar;

parcalar =textBox1.Text.Split(‘.’);

foreach (string i in parcalar)

{

listBox1.Items.Add(i);

}

}

[/code]

Örnek:

[code language=”csharp”]

private void parcala_Click(object sender, EventArgs e)

{

string[] parcalar;

parcalar =textBox2.Text.Split(textBox1.Text[0]);//parcalama kareteri textboxa girilen 0. karakter.

foreach (string i in parcalar)

{

listBox1.Items.Add(i);

}

}

[/code]

Örnek:

[code language=”csharp”]

private void parcala_Click(object sender, EventArgs e)

{

string[] parcalar;

char[] ayiricilar = { ‘?’, ‘.’, ‘,’ };

parcalar =textBox1.Text.Split(ayiricilar);

foreach (string i in parcalar)

{

listBox1.Items.Add(i);

}

}

[/code]

Daha fazla bilgi için : www.gorselprogramlama.com

Örnek: Ayıraçlar string olarak tanımlanıp daha sonra char’a dönüştürebilir.

[code language=”csharp”]

private void Form1_Load(object sender, EventArgs e)

{

string[] parcalar;

string k = “.”;

char[] ayrac = k.ToCharArray();

parcalar = “www.gorsel.programlama.com”.Split(ayrac);

foreach (string i in parcalar)

{

listBox1.Items.Add(i);

}

}

[/code]

Örnek: Birden fazla ayıraç belirtebiliriz.

[code language=”csharp”]

private void Form1_Load(object sender, EventArgs e)

{

string[] parcalar;

string k = “.!?”;

char[] ayrac = k.ToCharArray();

parcalar = “www.gor!sel.prog?raml?ama!com”.Split(ayrac);

foreach (string i in parcalar)

{

listBox1.Items.Add(i);

}

}

[/code]

Örnek: String’in belirlediğimiz değer kadar parçalanmasını sağlayabiliriz. Ayıraç olarak ilk gördüğünü baz alır.Aşağıdaki örnekte ayıraç olarak nokta işarati belirtilmiş.www.gorsel.programlama.com stringi normalde noktaya göre parçalsaydık 4 kelime elde ederdik.Biz split(ayrac,2 ) komutu ile stringin ikiye parçalanmasını sağlıyoruz.İlk ayraçtan sonraki parçalar diğerlerini aynen bırakır.

[code language=”csharp”]

private void Form1_Load(object sender, EventArgs e)

{

string[] parcalar;

string k = “.”;

char[] ayrac = k.ToCharArray();

parcalar = “www.gorsel.programlama.com”.Split(ayrac,2);

foreach (string i in parcalar)

{

listBox1.Items.Add(i);

}

}

[/code]

Daha fazla bilgi için : www.gorselprogramlama.com

Dersin videolu anlatımı ve anlatımda yapılan projeyi indirmek için

Tıklayınız

Yorumlar 17

  • arkadaşlar her pc açtığımda bu gün acaba ne gibi bir yenilik eklemişler diyorum.
    bu dersinizle bizlere öyle bilgi sunmuşsunuz ki.
    bilgiye, ilme, programa doyurdunuz.

    Allah sağlık, sıhhat versin.
    ilminizi artırsın.

  • Çoooooo..k teşekkür ederim.

  • Merhaba hocam güzel çalışma olmuş elinize sağlık benim bi sorum olacak

    1. listboxa txt den ip:port import ediyorum amacım listbox 1deki ip den sonra gelen portları listbox2 ye aktarmak vb kullanıyorum c# de olabilir yardimci olurmusunuz şimdi den teşekkürler

  • Murat :
    ip ile portları ayıran karakteri Split metodunu kullanıp parçalayarak listbox2 ye aktarabilirsin.

  • Merhaba,

    Ben bir paragrafı /* bu iki karaktere göre parçalamak istiyorum fakat Split özelliğinde tek karakter kullanabiliyorum. /* gibi birden fazla karakterli parçalama için nasıl bir yol izlemeliyim ?

  • Aybuke :
    Aşağıdaki örnekte görüldüğü gibi birden fazla parçalama karakteri kullanılabilir.
    string Metin = “#sharp-diyez/slash-bölme kesik yarık.dot-nokta,comma-virgül”;

    char[] ayraclar = { ‘/’, ‘#’, ‘.’, ‘,’ };

    string [] kelimeler = Metin.Split(ayraclar);

    foreach (string okunan in kelimeler)

    Console.WriteLine(okunan);

  • Çok teşekkür ederim, sağolun. @admin

  • Yazınız için çok teşekkür ederim. Yalnız bana daha değişik bir şey lazım. Konsol üzerinde çalışan bir satranç programlayacağım. Oyuncudan taşların bulunduğu karelerin konumu almak için A1,B3 gibi ifadeler almam lazım. Benim istediğim A1 i nasıl A ve 1 e ayıracağım

  • Asrın : Aşağıda verdiğim kodlardan yararlanabilirsin.Sayısal değerleri ayrı bir değişkene stringleride ayrı bir değişkene atarak daha sonra kullanabilirsin.
    bool IsNumeric(string text)
    {
    foreach (char chr in text)
    {
    if (!Char.IsNumber(chr)) return false;
    }
    return true;
    }
    Burdaki örnekte text içinde sayı yoksa false değerini döndürüyor.

  • peki bunu nasıl ayıra bilirim
    “{\”4\”:{\”count\”:1},\”8\”:{\”count\”:78},\”6\”:{\”count\”:1}}”
    bir miş hali
    id= 4
    count=1

    id= 8
    count=78

    id= 6
    count=1

    bazen tek gelir bazen bir den fazla rakamlar değişiyor

  • osman :
    İlk olarak virgül karakterine göre parçalama yani split işlemini yapcaksın.
    Daha sonra parçalanmış diziler içinde sayı değerlerini arama yapcaksın.İlk arattığın sayısal değer id ikincisi count.
    Harf içinde sayı aratma kodları :
    bool IsNumeric(string text)
    {
    foreach (char chr in text)
    {
    if (!Char.IsNumber(chr)) return false;
    }
    return true;
    }

  • böyle yaptım örnek başka kod vere bilirsen sevinirim

    urunler = urunler.Replace(“\””, “”);
    urunler = urunler.Replace(“{“, “”);
    urunler = urunler.Replace(“}”, “”);
    urunler = urunler.Replace(“:count:”, “=”);

    var cek = urunler.Split(‘,’);
    for (var i = 0; i < cek.Length; i++)
    {
    var bul = cek[i].Split('=');
    SepeteEkle(bul[0], bul[1]);
    }

  • osman :
    elimde yok.tahmini bir yol söyledim size.

  • Merhabalar Bir kelimeyi harf harf parçalayabiliyor muyuz ?

  • Erdogan:
    Evet.split metodunu kullanmalisin

  • Belirli bir düzeni olmayan karakterler nasıl olabilir?

    NUMARA :000000 AD SOYAD :xxx xxxx xxxxx NOT :1111

    Ben burada numaranın değerini ayrı, ad soyad değerinin ayrı, not değerini ayrı birer textBox’da yazacak şekilde parçalamak istersem nasıl bir yol daha uygun olur?

  • Ayrıca onlar .txt dosyasından okunan veriler olacak ek satıra yazılmış. Program çalışınca seçilip uygun yerlerine yazılacak.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir