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

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;
}
X

Pin It on Pinterest

X