PDA

View Full Version : سوال: شمارش کلمات کلیدی (if or and ) در رشته ورودی



vB.N3T
پنج شنبه 28 فروردین 1393, 15:47 عصر
سلام مهندسین گرامی
برنامه به رشته میگیره و تعداد کلمات کلیدی رو شمارش میکنه و نتیجه رو اعلام میکنه
من این کد رو نوشتم و صحیح جواب میده. ولی اگه رشته بدون space وارد بشه کار نمیکنه مثلا به این شکل programingifcccor
تو این رشته2 تا کلمه کلیدی وجود داره
ممنون میشم راهنمایی کنید که اگر بدون space وارد شد رشته بتونه تشخیص بده کلیدی ها رو



int sum = 0;
string[] w = SplitWords(textBox1.Text);
foreach (string s in w)
{
if (s == "if")
{
sum++;

}

else if (s == "main")
{
sum++;

}
listBox1.Items.Add(s);
label1.Text = sum.ToString();
}

us1234
پنج شنبه 28 فروردین 1393, 17:44 عصر
string s = "programingifcccor";


for (int i = 0; i < s.Length; i++)
{
if (s[i] == 'i' && s[i+1] == 'f')
{
sum++;
}
if (s[i] == 'o' && s[i + 1] == 'r')
{
sum++;
}
}

vB.N3T
پنج شنبه 28 فروردین 1393, 18:01 عصر
ممنون تابعی نداره تو کل رشته وردی بگرده و نتیجه رو بده...برنامه حرفه ای تر بشه

us1234
پنج شنبه 28 فروردین 1393, 18:59 عصر
ممنون تابعی نداره تو کل رشته وردی بگرده و نتیجه رو بده...برنامه حرفه ای تر بشه

تابع که بعید میدونم ولی با یک روش دیگه هم میشه بنویسید . یک تابع هست برای جستجوی رشته ای داخل رشته ای دیگه فکر کنم این باشه .
string1.IndexOf(toFind1)

که اگه اون کلمه مورد نظر در رشته string1 باشه مقدار اولین رخدادش را برمیگردونه .

tooraj_azizi_1035
شنبه 30 فروردین 1393, 18:17 عصر
public static string[] GetSearchWords(string text)
{
string pattern = @"\S+";
Regex re = new Regex(pattern);

MatchCollection matches = re.Matches(text);
string[] words = new string[matches.Count];
for (int i=0; i<matches.Count; i++)
{
words[i] = matches[i].Value;
}
return words;
}

vB.N3T
دوشنبه 01 اردیبهشت 1393, 01:04 صبح
مهندس تورج کلمات کلیدی رو باید کجا نوشت دقیق ؟؟ بعد از \ ???