Ana içeriğe atla

C# String Reverse (Ters Çevirme) İşlemi

C# programlama dilinde string işlemine direkt olarak Reverse fonksiyonu uygulanabilse de bu işlem istenilen sonucu vermez. Kısaca bahsetmemiz gerekirse de string reverse işlemi bir metni ters çevirme işlemidir. Örneğin Alizade metninin ters çevrilmiş hali olan edazilA olacaktır.
Bu kısa makalemizde C# programlama dilinde bir metninin tersini elde etmek için yöntemlere değineceğiz. Bu makalemizde 2 hazır fonksiyonla string reverse işleminin nasıl yapılacağını anlatacağım. Tabiki bu işlemler dışında binlerce yöntem yazılabilir. Ama önemli olan bu işlemin çok kısa sürede yapılmasıdır. Örneğin metin üzerindeki for döngüsüyle de karakterleri tersten okuyup yazabilirsiniz. Ama dediğim gibi önemli olan bu işlemin kısa sürede yapılmasıdır. Bu açıdan bakıldığında string reverse işlemi için kod kütüphanenize aşağıda anlatacağım iki yöntemi yazmanızı tavsiye ederim.

Yukarıda anlattığım gibi string reverse işlemini hızlı gerçekleştirebilmeniz için 2 yöntem anlatacağım. Bunlardan birinci metnin karakter dizisine dönüştürülerek bu karakter dizisinin tersini almaktır. Makale girişinde de bahsettiğim gibi C# programlama dilinde metni ters çevirmek için yöntem yoktur. Ama tüm dizileri ters çevirmek için Reverse metodu vardır. String de bir karakter dizisi olduğu için de biz de bu metni karakter dizisine çevirip tersini bulabiliriz. Bu işlem için de ben aşağıdaki kodları yazdım. Siz de üzerinde oynamalar yaparak veya direkt olarak bu yöntemi kullanabilirsiniz.

public string ReverseString(string srtVarable) 

    return new string(srtVarable.Reverse().ToArray()); 
}

VEYA

public string Reverse(string text) 
    if (text == null) return null; 
    char[] array = text.ToCharArray(); 
    Array.Reverse(array); 
    return new String(array); 
}

Belki diyebilirsiniz bu işlem de string üzerinde sondan başa doğru gelerek yazmakla aynı değil mi diye. Bize göre fark olmayabilir. Ama c# programlama dilinin kendi içindeki diziyi ters çevirme optimizasyonlarını göz önüne alırsak bu yöntemin daha hızlı olduğunu söyleyebiliriz.
Aslında yukarıda bahsettiğim yöntem string ters çevirme(string reverse) işlemi için en kullanışlı ve ideal yöntem olsa da biraz daha fanteziye kaçarak XOR işlemini kullanarak bu işlemin nasıl yapıldığı ile ilgili kodları vereceğim. Bu kodla ilgili aslında optimizedir, en hızlı budur diyemem. Ama yöntem olarak güzel olduğu için bu kodları da sizinle paylaşmak istedim.

        private string ReverseXor(string s)
        {
            if (s == null) return null;
            char[] charArray = s.ToCharArray();
            int len = s.Length - 1;

            for (int i = 0; i < len; i++, len--)
            {
                charArray[i] ^= charArray[len];
                charArray[len] ^= charArray[i];
                charArray[i] ^= charArray[len];
            }

            return new string(charArray);
        }

Bu metodu yukarıda da bahsettiğim gibi sadece fantezi olsun diye paylaştım. Biraz kodlara da bakarsanız aslında yine yukarıda bahsettiğim karakter dizisine dönüştürüp işlem yapılıyor. Buradaki tek fark ter çevirme işlemi için biraz daha farklı yöntem kullanılması.

Umarım yazım faydalı olmuştur. Başarılar dilerim...

Yorumlar

  1. try
    {
    int sayi = int.Parse(textBox1.Text);
    int kalan = 0;
    string binary = "";
    do
    {
    kalan = sayi % 2;
    sayi = (sayi - kalan) / 2;
    binary += kalan.ToString();
    } while (sayi > 1);
    binary += sayi.ToString();
    string ReverseString(string srtVarable)
    {
    return new string(srtVarable.Reverse().ToArray());
    }
    label1.Text = binary;
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);

    YanıtlaSil
  2. Random rnd = new Random();
    for (int i = 0; i < 10; i++)
    {
    sayilar[i] = rnd.Next(1, 20);
    listBox1.Items.Add(sayilar[i]);
    }

    YanıtlaSil
  3. Array.Sort(sayilar); //Küçükten büyüğe sırala
    foreach (int sayi in sayilar)
    {
    listBox2.Items.Add(sayi);
    }

    YanıtlaSil

Yorum Gönder

Bu blogdaki popüler yayınlar

Azərbaycan Dilində Vurğu Qəbul Etmeyen Şekilçiler

Sözlərdə hecalardan birinin digərlərinə nisbətən daha qüvvətli deyilməsinə heca vurğusu deyilir. Üzərinə vurğu düşən hecaya isə vurğulu heca deyilir. Azərbaycan dilində vurğu adətən söz sonuna düşür. Söz şəkilçi qəbul ederkən vurğu adətən şəkilçinin üzərinə keçir. Məsələn: çiç ə k - çiçəkl ə r - çiçəklərd ə n məkt ə b - məktəbl i - məktəblil ə r - məktəblilərd ə n Buna baxmayaraq dilimizdə bir sıra şəkilçilər var ki onlar vurğu qebul etmirlər. Bu məqalədə Azərbaycan dilində vurğu qebul etməyən şəkilçilər incələnəcək ve bu şekilçilərin hansı hallarda vurğu qebul edib hansı hallarda vurğu qebul etmediyi araşdırılacaqdır. Eyni zamanda bildirmək istəyirəm ki vurğu ilə bağlı daha geniş və ətraflı məlumat üçün Azərbaycan Dilində Vurğunun Praktik Məsələləri adlı məqaləyə də nəzər yetirə bilərsiniz.  1. İsimlərdəki şəxs(xəbərlik) şəkilçiləri Məsələn: müəli'məm müəli'msən müəli'mdir müəli'mik müəli'msiniz müəli'mdirlər Qeyd: -dır4 ...

Ağaçlar Kireçle veya Badana İle Neden Boyanır?

Ağaçlar kireçle boyanmasının veya badana yapılmasının hem çevreye hem de doğaya, ağaçlara faydası var. Bu makalede bu geleneği enine boyuna tartışmaya çalıştık. Ağaca zarar veren mikrop ve bakterileri öldürür. Ağacı çok aşarı soğuk havalarda ve çok aşırı sıcak havalarda korur. Ağacın çürümesini ve kurtlanmasını önler. Ağacın gövdesinin alabileceği zararları en az düzeyde düşürmeyi sağlar. Hoş, güzel, hijyenik, temiz pırıl pırıl bir görüntü oluşturur. Ayrıca çok sıcak havalarda da ağacı yanmaya karşı korumak. En büyük etkisi soğuk havalarda ağacı don vurmalarına karşı korumak . Küresel ısınma göz önüne alındığında mevsim değişiklikleri ani don, ani ısı artışları ve azalışları sonucunun doğuracağı etkenler için yararlı etkin bir yöntem. Gövdeden obur dalların çıkmasını azaltmak için sürülür. Kireçleme ağaçları güneş yanığından korumak için yapılıyor. Ağaçlar da güneşten yanabiliyorlar. Bu arada odun dokudaki gözenekleri doldurarak kapattığı için, zararlıların yuv...

Sözlerde Vurğunun Yerini Necə Tapmaq Olar?

Azərbaycan dilindəki her hansı sözdə vurğunun yerini tapmaq üçün sözü hecalara ayırmadan nisbətən qüvvətli demək lazımdır. Çünki vurğulu heca tələffüz zamanı özünü asanlıqla biruzə verir. Onu da bilmək lazımdır ki, hecalara ayrılarkən sözdəki bütün hecalar eyni tonda tələffüz olunur. Vurğunu asand tapmaq üçün sözü sərbəst şəkildə tələffüz edib, hecaları nisbətən qüvvətli demək lazımdır. Tələffüz zamanı vurğu ilə bərabər sözün düzgün tələffüzü üst-üstə düşərsə bu heca vurğulu hecadır. Bu açıqlamalardan sonra qısaca sözlərdə vurğunu yerini nece tapmaq olar sualının cavablaya bilmək üçün vurğunun məntiqini başa düşmək lazımdır. Vurğu sözdə bir hecanın digər hecalara görə daha qüvvətli deyilməsinə deyilir. Onda vurğunun yerini düzgün tapmaq üçün sırayla sözdeki bütün hecalar digərlərinə nisbətən daha qüvvətli tələffüz olunur. Eger bu qüvvətli tələffüzlərdən biri bu sözün normal tələffüzü ilə örtüşərsə, onda bu heca vurğulu hecadır. Qeyd edek ki, sözlərdə vurğu '  işarəsi ilə göstər...