کار با کلاس String در سی شارپ

رشته ها (متن) یکی از پرکاربردترین نوع داده ای در زبان های برنامه نویسی امروزی می باشند. در دات نت با استفاده از System.String می توان عملیات مختلفی را بر روی رشته ها انجام داد و هر متغیری از نوع string در اصل یک object از System.String بوده کلمه کلیدی string در اصل یک نام مستعار برای دسترسی به متدهای این کلاس می باشد.

متدهای موجود در کلاس String

برای استفاده از متدهای موجود در کلاس String می بایست ابتدا namespace آن را به پروژه اضافه شود که بصورت پیش فرض در پروژه های سی شارپ وجود دارد.

using System;

ToString

از این متد برای تبدیل یک object (معمولاً اعداد) به رشته استفاده می شود. برای مثال اگر قصد داشته باشید محتوای یک متغیر int را به رشته تبدیل کنید می توانید از این متد استفاده نمایید.

int number = 48;
string text = number.ToString();

Format

یکی از پرکاربردترین متدهای کلاس String می باشد که توسط آن می توان یک رشته را به فرمت دلخواه تبدیل کرد. پارامتر اول این متد متن مورد نظر به همراه placeholder ها می باشد و پارامترهای بعدی، مقادیری که می بایست درون placeholder ها قرار گیرد. placeholderها با علامت { } تعین می شوند.

برای مثال فرض کنید درون سه متغیر به ترتیب سال، روز و ماه قرار گرفته و قصد داریم آنها را بصورت یک تاریخ شمسی به کاربر نمایش دهیم.

static void Main(string[] args)
{
    int year, month, day;
    year = 1399;
    month = 2;
    day = 6;
    Console.WriteLine(string.Format("{0}/{1}/{2}", year, month, day));
    Console.ReadLine();
}
output:
1399/2/6

نکته: شماره گذاری placeholderها از صفر شروع می شود.

در برخی مواقع علی الخصوص هنگامی که قصد دارید اطلاعاتی را در پایگاه داده ذخیره نمایید، نیاز خواهید داشت اعدادی مانند روز و ماه حتی اگر یک رقمی بودند با افزوده شدن صفر به ابتدای عدد آنها را بصورت دو رقمی ذخیره یا نمایش دهید تا گزارش های شما دچار مشکل نشوند. برای اینکار از پسوند :D2 استفاده می شود.

static void Main(string[] args)
{
    int year, month, day;
    year = 1399;
    month = 2;
    day = 6;
    Console.WriteLine(string.Format("{0}/{1:D2}/{2:D2}", year, month, day));
    Console.ReadLine();
}
output:
1399/02/06

یکی دیگر از موارد بسیار پرکاربرد، افزودن کاراکتر جدا کننده به ازای هر سه رقم در مقادیری مانند قیمت می باشد که این کار با پسوند :N0 امکان پذیر است.

static void Main(string[] args)
{
    int price = 4352000;
    Console.WriteLine(string.Format("{0:N0} Rial",price));
    Console.ReadLine();
}
output:
4,352,000 Rial

Replace

از این متد برای جایگذاری یک عبارت با عبارتی دیگر استفاده می شود. برای مثال فرض کنید قصد دارید وبسایتی همانند آکادمی بنو طراحی کنید که در صفحه اول آن لیستی از درس ها نمایش داده شود و با کلیک بر روی هر درس، صفحه مربوط به درس مربوطه نمایش داده شود. مشکل بزرگ آن است که نام درس ها دارای کاراکتر فاصله (space) می باشند درحالیکه استفاده از space در آدرس های اینترنتی مجاز نمی باشد. در چنین مواقعی می توان تمامی space ها را با خط تیره جایگزین نمود. این متد دو پارامتر دریافت می کند که پارامتر اول، عبارت فعلی و پارامتر دوم عبارت جایگزین می باشد.

static void Main(string[] args)
{
    string course = "tutorial of csharp programming language";
    string newUrl = course.Replace(" ", "-");
    Console.WriteLine(newUrl);
    Console.ReadLine();
}
output:
tutorial-of-csharp-programming-language

Trim

از این متد برای حذف فاصله ابتدا و انتهای موجود در یک رشته استفاده می شود که اهمیت بسیار زیادی در برنامه نویسی پایگاه داده دارد.

static void Main(string[] args)
{
    string course = " tutorial of csharp programming language ";
    Console.WriteLine(course.Trim());
    Console.ReadLine();
}
output:
tutorial of csharp programming language

شاید در نگاه اول تفاوت خاصی به نظر شما را جلب نکند اما توجه داشته باشید که محتوای متغیر course قبل از چاپ 41 کاراکتر می باشد اما هنگام چاپ 39 کاراکتر که همین موضوع اهمیت زیادی در برنامه نویسی پایگاه داده دارد و همواره توصیه می شود فضای خالی ابتدا و انتهای فیلدهای متنی، قبل از ذخیره سازی از بین بروند.

Split

از این متد برای جداسازی یک متن بر اساس کاراکتری مشخص استفاده می شود که خروجی آن آرایه ای از رشته ها خواهد بود. برای مثال فرض کنید در یک فیلد تاریخ شمسی ذخیره شده است و شما قصد دارید فیلدهای سال، ماه و روز را از هم تفکیک کنید.

static void Main(string[] args)
{
    string date = "1399/06/02";
    string[] newDate = date.Split('/');
    Console.WriteLine("Year: " + newDate[0]);
    Console.WriteLine("Month: " + newDate[1]);
    Console.WriteLine("Day: " + newDate[2]);
    Console.ReadLine();
}
output:
Year: 1399
Month: 06
Day: 02