PDA

View Full Version : شمارش تعداد یک کاراکتر خاص در یک رشته



sara_aryanfar
چهارشنبه 13 مهر 1390, 19:29 عصر
با چه کدی می توانیم مشخص کنیم چند تا از یک کاراکتر داخل یک رشته وجود دارد

gwbasic
چهارشنبه 13 مهر 1390, 19:38 عصر
اگه فرض کنیم که str رشته شما باشه تعداد یک کاراکتر مثلا m می شه:

str.Where(c => c == 'm').Count();

sara_aryanfar
چهارشنبه 13 مهر 1390, 20:10 عصر
ممکنه کد رو داخل شارپ بزارین چون برا من نا مفهوم هست ضمنا چطور میشه یک رشته رو داخل یک آرایه از نوع char ذخیره کرد برای جستجوی یک کاراکتر خاص ممنون

nilmil_nil
چهارشنبه 13 مهر 1390, 20:26 عصر
سلام

string str = "hamiididashtiizadehh";
char src = 'i';
int count = 0;
foreach (char item in str)
{
if (item ==src)
count++;
}
MessageBox.Show(count.ToString());

nilmil_nil
چهارشنبه 13 مهر 1390, 20:29 عصر
برای جستجوی یک کارکتر خاص میتونید از این دستور استفاده کنید
str.Contains('i').ToString();
str همون متغر رشته ای شماست!

sara_aryanfar
چهارشنبه 13 مهر 1390, 21:10 عصر
بزارید بگم چی کار می خوام بکنم تا شما هم توضیح بهتری بدین فرض کنید یک رشته داریم به این صورت a s t همان طور که می بینید بین حروف تعدادی اسپیس هست من می خوام اینا رو بشمارم و همونجا بنویسم مثلا
a5s2t عدد های 5 و 2 تعداد اسپیس هستند چطور می تونم اینکارو بکنم

csharpdoost
چهارشنبه 13 مهر 1390, 21:47 عصر
شما تو حلقه بالایی میتونید شمارنده رو قبل از If قرار بدید و بعد از if هم به جای src مقدار شمارنده رو توی رشته قرار بدید(Replace)

nilmil_nil
چهارشنبه 13 مهر 1390, 21:59 عصر
بفرماید دوست عزیز

string str = "h a m i d! ";
string newstr = "";
int count = 0;
for (int i = 0; i < str.Length; i++)
{
if (str[i] != ' ')
{
if (count != 0)
{
newstr += count.ToString();
count = 0;
}
newstr += str[i].ToString();


}
else if (str[i] == ' ')
{
count++;
}

}
MessageBox.Show(newstr);

wolf_majid
دوشنبه 07 آذر 1390, 21:59 عصر
فکر می کنم نیاز به فضای کاری linq باشه

mmd2009
دوشنبه 07 آذر 1390, 22:09 عصر
ما تو سی شارپ کجاش اینطوری دستور داریم؟ ! اینکه پیغام invalid Expersoin term میده .

با سلام

Count یک Extension method هست که برای استفاده از این Extension method شما نیاز دارید به فضای نام using System.Linq; که بعد از واردکردن این فضای نام میتونید از دیگر Extension method نیز استفاده کنید

موفق باشید

چند مثال :


const string a = "aa14505gbbv505";
int count = a.Where(c => c == 'a').Count();
int sum = a.Where(char.IsDigit).Sum(d => int.Parse(d.ToString()));

csharpdoost
دوشنبه 07 آذر 1390, 22:45 عصر
با سلام

Count یک Extension method هست که برای استفاده از این Extension method شما نیاز دارید به فضای نام using System.Linq; که بعد از واردکردن این فضای نام میتونید از دیگر Extension method نیز استفاده کنید

موفق باشید

چند مثال :


const string a = "aa14505gbbv505";
int count = a.Where(c => c == 'a').Count();
int sum = a.Where(char.IsDigit).Sum(d => int.Parse(d.ToString()));


چرا من چنین فضای نامی ندارم منظورم linq ه. یعنی وقتی کلمه System رو مینویسم تو زیر منوهاش چنین کلمه ای وجود نداره؟

Beginner2013
دوشنبه 07 آذر 1390, 22:54 عصر
چرا من چنین فضای نامی ندارم منظورم linq ه. یعنی وقتی کلمه System رو مینویسم تو زیر منوهاش چنین کلمه ای وجود نداره؟
حتما از نت فریمورک یا بویلدر با ورژن پایین استفاده میکنید.Linq در دات نت 3.5 و به بالا موجود است.

csharpdoost
پنج شنبه 10 آذر 1390, 13:10 عصر
حتما از نت فریمورک یا بویلدر با ورژن پایین استفاده میکنید.Linq در دات نت 3.5 و به بالا موجود است.
دانت فریمورک 4 رو نصب کردم اما بازهم
using System.Linq; رو ندارم. علت دیگه ای داره؟
البته هم از نوع Extended و هم Client profile رو نصب دارم .

nunegandom
پنج شنبه 10 آذر 1390, 14:11 عصر
مطمعن شو که تویه رفرنس هات System.Core.dll هست

sahaaaaaar
جمعه 05 دی 1393, 23:40 عصر
سلام دوستان من دارم روی یه پروژه کار میکنم که متنش اینه:گرامری که دستور ifرا برای یک زبان فرضی معرفی کند وبراساس آن این پروژه نوشته خواهد شدبه صورت زیر است .هدف نوشتن برنامه ای است که یک دستور نوشته شده ی ifرا از یک فایلnotepad.txtبخواند تشخیص دهد.
و برنامه ای که من نوشتم اینه ولی نمیدونم چه جوری بهش فرمان بدم که پرانتز و بقیه رو بخونه لطفا کمکم کنین









try




{


StreamReader sr = new StreamReader(@"E:\\mn.Txt");






//string StrText = sr.ReadLine().ToString();





string a = "", b = "", c = "";





int i = 0;





while (!sr.EndOfStream)




{

if (i < 2)




{
a +=
Convert.ToChar(sr.Read());




i++;

if (a == "if")




{
textBox1.Text =
"true";

Amin black hat
جمعه 12 مرداد 1397, 13:39 عصر
ببخشید از من messageboxرو اشتباه میگیره داداش

Amin black hat
جمعه 12 مرداد 1397, 16:44 عصر
ببخشید دوست عزیز اگر بخوام خروجی من در listbox ریخته بشه باید چیکار کنم .اگر زودتر راهنمایی کنی ممنون میشم