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)
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...
try
YanıtlaSil{
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);
Random rnd = new Random();
YanıtlaSilfor (int i = 0; i < 10; i++)
{
sayilar[i] = rnd.Next(1, 20);
listBox1.Items.Add(sayilar[i]);
}
Array.Sort(sayilar); //Küçükten büyüğe sırala
YanıtlaSilforeach (int sayi in sayilar)
{
listBox2.Items.Add(sayi);
}