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ı.
Örnek…:
string str = “Yağ yağ yağmur Teknede hamur Bahçede çamur”;
Desen:: –mur
Sonuç:
hamur
çamurDesen:: *mur
Sonuç:
yağmur
hamur
çamurDesen:: *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; }