مانده تا پایان تخفیف ۳۰ درصدی آموزش های ویدئویی سایت (کلیک کنید)

استخراج، حذف و جایگزین کردن رشته ها

برای استخراج قسمتی از یک رشته می توان از متد ()Substring استفاده کرد. این متد دو آرگومان قبول می کند که یکی اندیس شروع و دیگری طولی از رشته را که می خواهیم استخراج کنیم را نشان می دهد. به مثال زیر توجه کنید.

string str1 = "This is a sample string.";
//Extract sample
string str2 = str1.Substring(10, 6);

Console.WriteLine("str1 = {0}", str1);
Console.WriteLine("str2 = {0}", str2);
str1 = This is a sample string.
str2 = sample

استخراج را از اندیس 10 شروع کرده ایم (آرگومان اول که عدد 10 است). همانطور که مشاهده می کنید کلمه “sample” از اندیس 10 شروع شده است (کاراکتر یازدهم). آرگومان دوم نشان می دهد که ما چند کاراکتر را می خواهیم استخراج کنیم. ازآنجاییکه عدد 6 را برای این آرگومان در نظر گرفته این 6 کاراکتر از رشته مورد نظر استخراج می شود. اگر نخواهید که مکان قرار گرفتن کلمه “sample” را به صورت دستی شمارش کنید می توانید با استفاده از متد ()IndexOf این کار را انجام دهید.

string str2 = str1.Substring(str1.IndexOf("sample"), 6);

یکی دیگر ازسربارگذاریهای متد ()Substirng فقط یک آرگومان که برای تعیین کردن اندیس شروع استخراج به کار می رود را قبول می کند در نتیجه استخراج از این اندیس شروع شده و تا پایان رشته ادامه می یابد.

 

حذف رشته ها با استفاده از متد Remove

برای حذف رشته ها می توان از متد ()Remove استفاده کرد. پارامترهای ان شبیه متد ()Substring می باشد.

string str1 = "This is a sample string.";
Console.WriteLine(str1);
Console.WriteLine("Removing "sample"...");
str1 = str1.Remove(10, 7);
Console.WriteLine(str1);
This is a sample string.
Removing "sample "...
This is a string.

یکی از سربارگذاری های متد ()Remove یک آرگومان که اندیس شروع حذف را نشان قبول می کند.حذف رشته از این اندیس شروع و تا پایان رشته ادامه می یابد.

 

جایگزین کردن رشته ها با استفاده از متد Replace

با استفاده از متد ()Replace می توان یک رشته خاص را با یک رشته دیگر عوض کرد. به عنوان مثال در کد زیر می توان کلمه “dog” را با کلمه “cat” عوض کرد.

string str1 = "That dog is a lovely dog.";
Console.WriteLine(str1);
Console.WriteLine("Replacing all dogs with cats...");
str1 = str1.Replace("dog", "cat");
Console.WriteLine(str1);
That dog is a lovely dog.
Replacing all dogs with cats...
That cat is a lovely cat.

متد ()Replace دو آرگومان قبول می کند. اولین آرگومان رشته ای است که می خواهیم آن را با یک رشته جدید جایگزین کنیم (رشته قدیم) و دیگری رشته جدید است. متد ()Replace تمام کلمات “dog” واقع در رشته را پیدا کرده و کلمه “cat” را جایگزین آنها می کند. از این متد می توان برای حذف همه کلمات مثلا “dog” در مثال زیر استفاده کرد.

string str1 = "That dog is a lovely dog.";
Console.WriteLine(str1);
Console.WriteLine("Removing all dogs...");
str1 = str1.Replace("dog", String.Empty);
Console.WriteLine(str1);
That dog is a lovely dog.
Removing the dogs...
That  is a lovely .

در کد بالا از ()String.Empty به عنوان یک رشته جایگزین استفاده شده است.متد ()String.Empty معادل “” و به معنای رشته خالی می باشد. بنابراین تمام محل های وقوع کلمه “dog” با رشته خالی جایگزین شده و از رشته واقعی حذف می شوند.

لطفا اگر نظر، پیشنهاد و یا انتقادی در باره مطلب بالا دارید در قسمت زیر و اگر سوالی دارید در بخش پرسش و پاسخ مطرح بفرمایید.

  1. a پاسخ دادن

    سلام ممنون از آموزشش خوبتون
    “متد Replace تمام کلمات “dog” واقع در رشته را پیدا کرده و کلمه “cat” را جایگزین آنها می کند”
    اگه بخواهیم برای همه جایگزین نکنه چکار باید بکنیم؟؟؟

    • یونس ابراهیمی پاسخ دادن

      باید از یک حلقه while و به صورت دستی اندیس محل وقوع کلماتی که قرار است جایگزین شوند را مشخص کنید.

  2. h_jafarnezhad پاسخ دادن

    سلام ممنون از اموزشتون فقط یه سوال من از متد remove استفاده کردم ولی فقط برای یک سطر اعمال میشه اگه بخوام کل سطر های مثلا rich text رو تحت تاثیر بزاره باید چی کار کنم

    • یونس ابراهیمی پاسخ دادن

      سلام دوست خوبم ممنون میشم سوالاتتون رو در بخش پرسش و پاسخ سایت بپرسید .

  3. Pourarian پاسخ دادن

    با عرض سلام و خسته نباشید خدمت آقای ابراهیمی
    یه سوال ازتون داشتم…
    می خواستم بدونم با استفاده از چه تابعی در رشته،حرف صدار رو شمارش میکنه!

  4. محمد پاسخ دادن

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

    • یونس ابراهیمی پاسخ دادن

      اینم کدش

      string message = Console.ReadLine();
      string[] substrings = message.Split(' ');
      
      foreach (string s in substrings)
      {
          Console.WriteLine(s);
      }  
      
  5. یونس ابراهیمی پاسخ دادن

    سلام، دو درس قبل تر رو مطالعه بفرمایید یعنی درس ((جداکردن رشته ها ))

  6. pouya پاسخ دادن

    سلام من می خوام تو یک جمله کاراکترهایی رو جستجو کنم در صورتی که بودن به جاشون یه چیز دیگه بزارم مثلا:
    this is sample string خروجی th$s $s s%mpl& string که به جای I ها $ و به جای a ها % و به جای e ها & بزاره.
    چطور می تونم این کار رو بکنم؟
    مرسی