1. Ana Sayfa
  2. Nesne Tabanlı Programlama

C# Örnekleri – Joker Karakterler Kullanarak String İçinde Arama Yapma

C# Örnekleri – Joker Karakterler Kullanarak String İçinde Arama Yapma
+ - 0

Kullanıcının girdiği bir ifade içinde yine kullanıcının gireceği bir desene göre arama yapan ve uygun kelimeleri sonuç olarak gösteren programın Console uygulaması.
stringarama
Örnek…:

string str = “Yağ yağ yağmur Teknede hamur Bahçede çamur”;

Desen:: –mur
Sonuç:
hamur
çamur

Desen:: *mur
Sonuç:
yağmur
hamur
çamur

Desen:: *e-e
Sonuç:
Teknede
Bahçede

gibi.. programın kodları aşağıda çalışma mantığı ilk olarak girilen ifade kelimelere ayrılıyor daha sonra her kelime üzerinde verilen desene göre karakter karakter kontrol yapılıyor.

        static string ifade, aranan;
        static void Main(string[] args)
        {
            Console.WriteLine("Bir ifade girin;");
            ifade = Console.ReadLine();
            Console.WriteLine("Tek karakter için(-) birden fazla karakter (*) ");
            Console.WriteLine("Şeklinde olmak üzere bir arama ifadesi girin");
            aranan = Console.ReadLine();
            kontrol(ifade, aranan);
            Console.ReadKey();
        }//http://www.bilisimogretmeni.com/
        static void kontrol(string metin, string joker)
        {
            string[] kelimeler = metin.Split(' ');
            foreach (string kelime in kelimeler)
            {
                if (DesenAra(joker, kelime) == true)
                {
                    Console.WriteLine(kelime);
                }

            }
        }
        static Boolean DesenAra(String desen, String kelime)
        {
            if (String.Compare(desen, kelime) == 0)
            {
                return true;
            }//http://www.bilisimogretmeni.com/
            else if (String.IsNullOrEmpty(kelime))
            {
                if (String.IsNullOrEmpty(desen.Trim(new Char[1] { '*' })))
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            else if (desen.Length == 0)
            {
                return false;
            }
            else if (desen[0] == '-')
            {
                return DesenAra(desen.Substring(1), kelime.Substring(1));
            }
            else if (desen[desen.Length - 1] == '-')
            {
                return DesenAra(desen.Substring(0, desen.Length - 1), kelime.Substring(0, kelime.Length - 1));
            }
            else if (desen[0] == '*')
            {
                if (DesenAra(desen.Substring(1), kelime))
                {
                    return true;
                }
                else
                {
                    return DesenAra(desen, kelime.Substring(1));
                }
            }
            else if (desen[desen.Length - 1] == '*')
            {
                if (DesenAra(desen.Substring(0, desen.Length - 1), kelime))
                {
                    return true;
                }
                else
                {
                    return DesenAra(desen, kelime.Substring(0, kelime.Length - 1));
                }
            }//http://www.bilisimogretmeni.com/
            else if (desen[0] == kelime[0])
            {
                return DesenAra(desen.Substring(1), kelime.Substring(1));
            }
            return false;
        }
Subscribe
Bildir
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Yorum
Inline Feedbacks
View all comments