PDA

View Full Version : جستجوی تعداد تکرار شده یک رشته (ورودی از کاربر) در یک متن



irangavedany
چهارشنبه 28 مهر 1389, 11:39 صبح
از دوستان ممنون می شم جواب بدهند

group45
چهارشنبه 28 مهر 1389, 12:46 عصر
شما میتونید از split استفاده کنید

irangavedany
چهارشنبه 28 مهر 1389, 12:54 عصر
ممنون از پاسخ شما اما
split رشته هارو برا ساس یک کاراکتر جدا می کنه(معمولا spac) ولی ممکن رشته انتخابی کاربر جزیی از رشته جدا شده با شه مثلا کاربر رشته ab را انتخاب کرده ورشته ما dab است حال چه باید کرد

mehdi.mousavi
چهارشنبه 28 مهر 1389, 14:18 عصر
سلام.
می تونید به این شکل عمل کنید:

string input = "this is a test, this test is a great test! beat meat fear";
int count = System.Text.RegularExpressions.Regex.Matches(input , "ea").Count;

در مثال فوق، من دنبال عبارت ea در متن گشتم و تعدادش رو در count ریختم. از اونجاییکه


great
beat
meat
fear


همشون ea رو دارن، عدد 4 به شما برگردونده میشه.

موفق باشید.

پاورقی: این فقط یه مثال بود، شاید لازم باشه Pattern اتون رو بسته به نیاز تغییر بدید.

saeidi.yusuf
چهارشنبه 28 مهر 1389, 14:47 عصر
دوست عزیز:
تابع زیر دو ورودی میگیرد یکی متن شما یکی متنی که می خواهید تعداد تکرارش رو پیدا کنید و تعداد تکرار را بر می گردونه.
البته این تابه برای متن های خیلی طولانی کار نمی کنه چون متن رو توی string میریزه. اگه متنتون خیلی طولانیه باید یه مقدار کد و عوض کنی ولی منطقش فزقی نمی کنه.


public int SubStringNumber(string text, string subString)
{
string yourtext = text;
string userText = subString;

char[] userChars = userText.ToCharArray();
char[] yourChars = yourtext.ToCharArray();

//braye negahdari tedad reshteye yaft shode
int Number = 0;
//braye harekat bar roye arraye e userChars
int counter = 0;


for (int i = 0; i < yourChar.Count(); i++)
{
bool find = false;
if (userChars[counter] == yourChar[i])
{
find = true;
counter++;
}
if (find == false)
{
counter = 0;
if (userChars[0] == yourChar[i])
{
counter++;
}
}
if (counter == userChars.Length)
{
Number++;
counter = 0;
}

}

return Number;
}

irangavedany
چهارشنبه 28 مهر 1389, 23:47 عصر
از همتون ممنونم من خودم کدی که مینوشتم به کد اقای saeidi.yusuf (http://www.barnamenevis.org/forum/member.php?u=142801) نزدیک بود ولی یه اشکال داشت که من به اون دقت نکرده بودم ویک سوال از اقایmehdi.mousavi (http://www.barnamenevis.org/forum/member.php?u=41233) شما این توابع را ازکجا پیدا می کنید من معمولا پست هایی که شما می دهید رو می بینم لطفا ما رو هم راهنمایی کنید

mehdi.mousavi
پنج شنبه 29 مهر 1389, 00:24 صبح
یک سوال از اقای mehdi.mousavi (http://www.barnamenevis.org/forum/member.php?u=41233) شما این توابع را ازکجا پیدا می کنید من معمولا پست هایی که شما می دهید رو می بینم لطفا ما رو هم راهنمایی کنید

سلام.
هر وقت نیاز به یافتن الگوی خاصی در یک متن داشتید، حتما باید Regular Expression ها رو در نظر بگیرید. این "عبارات باقاعده" عموما در اکثر زبانهای برنامه نویسی پیاده سازی شده اند، در نتیجه اگر یک بار اونها رو یاد بگیرید، می تونید از دانش و مهارت کسب شده در زبانهای دیگه ای مثل JavaScript، Perl و ... نیز سود ببرید.

موفق باشید.