بررسی متد های String در سی شارپ - پارت سوم
آموزش سی شارپ

بررسی متد های String در سی شارپ - پارت سوم

در این مطلب ما به بررسی 5 متد زیر در رشته ها در زبان سی شارپ می پردازیم:

  • StartsWith 
  • EndsWith 
  • Equals 
  • LastIndexOf 
  • IndexOf

همچنین می توانید مطالب زیر در مورد رشته ها و متدها رو مطالعه کنید.

  1. معرفی نوع داده ای رشته یا String در سی شارپ
  2. معرفی متدهای String در سی شارپ - بخش اول
  3. معرفی متدهای String در سی شارپ - بخش دوم

در مجموعه وایلدکدر سعی بر آن هست که مطالب به صورت ساده و روان توضیح داده شود تا درک مطلب راحت تر باشد.

شما می توانید دوره رایگان مقدماتی آموزش سی شارپ در محیط کنسول رو در لینک زیر مشاهده کنید .

آموزش مقدماتی برنامه نویسی سی شارپ در محیط کنسول

تقریبا میشه گفت نوع String یا رشته بیشترین استفاده رو داره توی هر زبان برنامه نویسی به همین خاطر امکانات زیادی برای این نوع در نظر گرفته شده است.

 

متد StartsWith:

تعیین می کند که آیا این نمونه از رشته مورد نظر با کاراکتر مشخص شده شروع می شود یا خیر.

 string a = "wildcoder.ir";
Console.WriteLine(a.StartsWith("w"));
  • این متد به عنوان پارامتر ورودی یک رشته را دریافت می کند و به عنوان خروجی یک مقدار True یا False را به ما تحویل می دهد.
  •  اگر رشته اصلی با این رشته ورودی شروع شده باشد مقدار true در غیر این صورت false

متد EndsWith :

به عنوان ورودی یک رشته دریافت می کند و مشخص می کند ایا رشته اصلی به این رشته ورودی ختم شده است یا خیر؟

namespace string_methods
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string a = "wildcoder.ir";
            Console.WriteLine(a.EndsWith(".ir"));
            Console.ReadLine();
        }
    }
}

خروجی این متد هم مقدار true یا false است.

متد Equals :

برای بررسی یکسان بودن دو نمونه از شی string از این مت استفاده می شود. 

مثال اول :

string a = "wildcoder.ir";
string b = "wilcoder.ir";
Console.WriteLine(a.Equals(b));

result :  True

در مثال بالا مقدار نمونه a با نمونه b مقایسه شده است ، در این حالت چون مقدار هر دو نمونه یکسان هستند خروجی true را به ما تحویل می دهد.

مثال دوم :

string a = "wildcoder.ir";
string b = "Wilcoder.ir";
Console.WriteLine(a.Equals(b));

result :  False

در مثال دوم هم دقیقا مشابه مثال اول عمل کرده ایم ولی کاراکتر اول از نمونه دوم را با حرف بزرگ نوشته ایم ، بله درست متوجه شده اید ف در حالت پیش فرض حساس به حروف است .

مثال سوم : 

 static void Main(string[] args)
        {
            string a = "wildcoder.ir";
            string b = "Wildcoder.ir";
            Console.WriteLine(a.Equals(b,StringComparison.OrdinalIgnoreCase));
            Console.ReadLine();
        }

در مثال سوم مشابه مثال دوم عمل کرده ایم و حرف اول نمونه دوم رو با حرف بزرگ نوشته ایم ولی متد Equals یک پارامتر دیگه هم می گیره از ما که مشخص میکنه نوع مقایسه به چه شکل انجام بشه و ما در مثال سوم مشخص کردیم که حساس به حروف نباشد.

  • همچنین می توان گفت که شما می توانید از == برای مقایسه دو رشته استفاده کنید همانند متد equals ولی تفاوت های اندکی باهم دارند :
  • == برای مقایسه null هم استفاده می شود یعنی اگر یک مقدار یک نمونه null باشد مقایسه می شود و اتفاقی نمی افتد ولی در متد equals در صورتی که یکی از مقادیر null باشد خطای NullReferenceException صادر می شود.
  • همچنین شما می توانید برای equals اورلود OverLoad تعریف کنید ولی برای == این امکان وجود ندارد
  • در == مقایسه حساس به حروف هست 
  • در equals هم حساس و غیر حساس هست با تنظیم پارامتردوم (مثال سوم)

متد IndexOf در سی شارپ :

این متد یک کاراکتر به عنوان پارامتر ورودی دریافت می کند و شماره اندیس آن در رشته مورد نظر را به ما تحویل میدهد در صورتی که کاراکتر مورد نظر در رشته وجود داشته باشد عدد اندیس ان را به ما تحویل می دهد در غیر صورت عدد -1 را به ما تحویل خواهد داد.

توجه داشته باشید اگر از کاراکتر مورد نظر چندین بار در رشته تکرار شده باشد ، به اولین کاراکتر که رسید شماره اندیس را تحویل می دهد و به بقیه خانه ها کاری ندارد.

متد LastIndexOf : 

در رشته مورد نظر جستجو می کند و شماره اندیس کاراکتر مورد نظر را به ما تحویل می دهد . یعنی اگر از کاراکتر چندین تکرار در رشته مورد داشته باشیم اندیس اخرین کاراکتر را به تحویل می دهد.
string a = "wildcoder.ir";
Console.WriteLine(a.LastIndexOf('i'));

به طور مثال در رشته wildcoder.ir کاراکتر i دو بار تکرار شده (اندیس 1 و اندیس 10 )به همین خاطر اخرین تکرار این کاراکتر در خانه 10 ام هست و نتیجه در خروجی 10 خواهد بود.

نویسنده

یاسر دهقان

تاریخ نگارش
12 بهمن 1402
18 مقاله این نویسنده