PDA

View Full Version : آیا در سی شارپ تابعی برای پاک کردن یک کلمه در یک رشته وجود دارد؟



kiani_behzad
جمعه 05 آبان 1385, 21:50 عصر
منظور این است که تابع مورد نظر یک رشته بگیرد و سپس یک کلمه آنگاه در آن رشته هر جا که کلمه ی مورد نظر تکرار شده است را پاک کند.
توجه کلمه با زیر رشته فرق دارد.

powerboy2988
جمعه 05 آبان 1385, 21:57 عصر
می تونی خودت به صورت دستی این کار رو انجام بدی
وقتی که یه رشته(سعی کن آرایه باشه) از ورودی گرفتی و اون کلمه مورد نظر توی حلقه for میزاری یعنی تک تک کلمه های اون رشته رو با کلمه مورد نظرت مقایسه می کنی .
حالا اگه می خوای پاکش کنی یه counter میزاری و تو این counter ست می کنی که هرجا اون کلمه مورد نظرتو پیدا کرد یه واحد افزایش پیدا کنه و بر اساس همین می توی اون کلمه مورد نظر تو پاک کنی

ARA
شنبه 06 آبان 1385, 05:57 صبح
با یک کلمه رو میتونی با دو تا space در اول و آخر کلمه ،به زیر رشته تبدیل کنی
البته اگه سوالت رو درست متوجه شده باشم

یا میتونی از کلاسهای قوی regExperssion استفاده کنی

kiani_behzad
شنبه 06 آبان 1385, 15:42 عصر
میشه در مورد اون کلاس ها بیشتر توضیح بدی؟

once4ever
شنبه 06 آبان 1385, 16:49 عصر
میشه یک مثال بزنی از کاری که میخوای؟
(یه رشته بگو و بگو میخوای به چی تبدیل بشه)
چیزی که من فهمیدم خیلی ساده است!

kiani_behzad
شنبه 06 آبان 1385, 19:33 عصر
آره خیلی ساده هستش
ببین مثلا" رشته ی: this is a web site for you is it
من می خوام مثلا" کلمه ی is را از تو اون حذف کنم هر چند بار که تکرار شده
اما نباید اون is که توی this هست حذف بشه باید نتیجه بشه:
this a web site for you it
اگه کدشو واسم بنویسی ممنون می شم.
می خوام از اون کد تو این برنامه استفاده کنم:
یک رشته را بگیرید و کلمات آن را بر اساس حروف الفبا مرتب کنید.هر کلمه فقط یک بار تکرار شود.
من منتظر کمکت هستم.
ممنون
--------------------
من تو برنامه حق ندارم از آرایه ها استفاده کنم واسه همین یه کم مرتب کردن رشته سخته

kiani_behzad
شنبه 06 آبان 1385, 19:38 عصر
راستی یادم رفت بگم من یه ماه که شروع به یاد گرفتن سی شارپ کردم یعنی خیلی مبتدی هستم قبلا" با سی کار کردم خوب سی شارپ یه سری محدودیت ها داره تا اونجا که من می دونم مثلا" نمیشه با اندیس آرایه ها رو مقدار دهی کرد واسه همین به مشکل خوردم دوست دارم سی شارپ رو خوب یاد بگیرم و از نظرات شما عزیزان استفاده کنم.

ARA
یک شنبه 07 آبان 1385, 02:16 صبح
منظورتون از این حرف چیه؟؟؟ واضح تر میفرمایین :متعجب:


خوب سی شارپ یه سری محدودیت ها داره تا اونجا که من می دونم مثلا" نمیشه با اندیس آرایه ها رو مقدار دهی کرد

بقول اونهایی که پرل کار میکنند واسه یک مسئله چندین روش و راه حل مسئله داریم تو #C هم همینطوره :چشمک:



using System.Text.RegularExpressions;
private void button2_Click(object sender, EventArgs e)
{
string source = "i am ara and i am aram ";
string search = " ara ";
string replaceStr = " Mohsen ";
matchingWithRegExpessions(source, search, replaceStr);
//or
string test=source.Replace(search, replaceStr);
// result="i am Mohsen and i am aram "
}
private void matchingWithRegExpessions(string source, string search, string replaceStr)
{
string matchPattern =search ;
Regex reg = new Regex(matchPattern);
string test= reg.Replace(source, replaceStr);
// result="i am Mohsen and i am aram "
}

maryam za
شنبه 01 شهریور 1393, 16:29 عصر
سلام به دوستان عزیز.
دوستان من می خوام با سی شارپ کدی بنویسم که بشه باهاش تحلیل عواطف انجام داد. در واقع می خوام متن های موجود در یک مجموعه داده را رتبه بندی کنم. اما تا بدست آوردن TF-IDF پیش رفتم . از این جا به بعد رو الگوریتمی به ذهنم نمیرسه... سرچ هم کردم اما...
اگه کسی بتونه کمکم کنه واقعا ممنون میشم .

hamed442
شنبه 01 شهریور 1393, 18:48 عصر
آره خیلی ساده هستش
ببین مثلا" رشته ی: this is a web site for you is it
من می خوام مثلا" کلمه ی is را از تو اون حذف کنم هر چند بار که تکرار شده
اما نباید اون is که توی this هست حذف بشه باید نتیجه بشه:
this a web site for you it


this.Text= "this is a web site for you is it".Replace(" is", "");


دقت کنید قبل از is که داخل replace قرار دارد یک فاصله گذاشته ام.

aminmousavi
شنبه 01 شهریور 1393, 18:58 عصر
آره خیلی ساده هستش
ببین مثلا" رشته ی: this is a web site for you is it
من می خوام مثلا" کلمه ی is را از تو اون حذف کنم هر چند بار که تکرار شده
اما نباید اون is که توی this هست حذف بشه باید نتیجه بشه:
this a web site for you it
اگه کدشو واسم بنویسی ممنون می شم.
می خوام از اون کد تو این برنامه استفاده کنم:
یک رشته را بگیرید و کلمات آن را بر اساس حروف الفبا مرتب کنید.هر کلمه فقط یک بار تکرار شود.
من منتظر کمکت هستم.
ممنون
--------------------
من تو برنامه حق ندارم از آرایه ها استفاده کنم واسه همین یه کم مرتب کردن رشته سخته


سلام دوست عزیز .
درس کامپایلر رو داری ؟
اگر حق استفاده از آرایه رو نداری ، به نظر بنده در رابطه با ' پارس کردن رشته ' جستجو کن ، چون اگه حق استفاده از آرایه رو نداشته باشید ، احتمالا حق استفاده از متد هایی مثل indexOf و ... رو ندارید .

اما اگر میتونین استفاده کنین ، میتونه الگوریتم تون اینجوری باشه

- یک حلقه while بزارید که که Condition برابر با این باشه که تا وقتی str.IndexOf(" is") مخالف -1 هست اجرا بشه (بنده فرض گرفتم جداکننده کلمه شما فقط space هست)
- با اجرای هر بار حلقه به کانتر یکدونه اضافه میکنی
- بعدش میتونی نسبت به اندکسی که str.IndexOf بر میگردونه اون کلمه را حذف کنی
-- توی بدنه حلقه اگر میخوای اولین کلمه حذف نشه با یک flag میتونی اینکار رو بکنی که اولی حذف نشه

محمد آشتیانی
شنبه 01 شهریور 1393, 19:13 عصر
دوستان این تاپیک مربوط به سال 85 هست.