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

Medyan (Ortanca) Nedir? Nasıl Hesaplanır? Nerelerde Kullanılır?

Medyan işlemi olasılık hesaplamalarında sıkça kullanılan bir sayı dizisinin ortalamasını hesaplamak için alternatif yöntemlerden bir tanesidir. Ortanca medyan işleminin diğer adıdır. Matematiksel olarak medyan işlemi bir sayı dizisi küçükten büyüğe sıralayarak ortada kalan elemanı medyan değeri olarak belirleme işlemidir. Örnek verecek olursak: 2, 1, 5, 4, 5, 1, 2, 3, 5 serisi sıralanırsa 1, 1, 2, 2, 3, 4, 5, 5, 5 serisi elde edilir. Bu seri 9 elemanlı olduğundan ortadaki, yani 5. eleman (medyan) olacaktır. 5. eleman 3 sayısıdır. Yani ortanca değeri 3'dür Eleman sayısı tek sayı olan bir seride medyan değerin sırasının hesaplaması şu şekilde formüle edilir. Medyanın Sırası = (Eleman Sayısı + 1) / 2 Bu formülü yukarıdaki örneği uygulayacak olursak; Medyanın Sırası = (9 + 1) / 2 = 5 Veri serisi eleman sayısı bir çift sayı ise bu durumda serinin 2 medyanı olacaktır. Örneğin 2, 1, 5, 4, 5, 1, 2, 3, 5, 4 serisi sıralandığında 1, 1, 2, 2, 3, 4, 4, 5, 5, 5 s

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

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