بنام خدای مهربان
، StringBuilder یک کلاس در سی شارپ هست که برای نمایش یک رشته قابل تغییر از کاراکترها استفاده می شود و یک شیء از نام فضای System.Text است.
مانند رشته در سی شارپ، ما می تونیم از StringBuilder برای ایجاد متغیرهایی برای نگهداری هر نوع متن استفاده کنیم که یک مجموعه توالی از کاراکترها بر اساس نیاز ما است.
هر دو "رشته "(string) و StringBuilder یک توالی از کاراکتر ها را نمایش می دهند و یک نوع عملیات را انجام می دهند، اما تنها تفاوت رشته ها غیر قابل تغییر هستند و StringBuilder قابل تغییر است.
به طور کلی، در سی شارپ ، شیء رشته بعد از ایجاد آن نمیتواند تغییر کند. اگر هرگونه تغییری در شیء رشته مانند افزودن یا اصلاح یک مقدار موجود ایجاد شود، آن را به سادگی نمونه اولیه را در حافظه از بین می برد و یک نمونه جدید برای نگهداری مقدار جدید ایجاد می کند. در صورتی که ما یک اصلاح تکراری بر روی شیء رشته ای انجام می دهیم، آن عملکرد عملکرد را تحت تاثیر قرار می دهد. برای دانستن بیشتر در مورد رشته ها، این رشته ها را در c # با نمونه ها بررسی میکنیم.
برای حل این مشکل، سی شارپ یک جایگزین به نام StringBuilder معرفی کرد که یک کلاس رشته قابل تغییر است. تعویض به این معنی است که وقتی یک نمونه از کلاس ایجاد می شود، از همین مثال برای انجام هر عملیاتی مانند افزودن، اضافه کردن، حذف یا جایگزینی کاراکتر ها به جای ایجاد یک نمونه جدید برای هر بار استفاده می شود.
در c #، StringBuilder یک شی پویا است که به جای ایجاد یک نمونه جدید در حافظه، به صورت پویا گسترش می یابد تا تغییرات رشته را تغییر دهد.
در زیر تصویر تجسم تخصیص حافظه برای شیء StringBuilder در زبان برنامه نویسی سی شارپ است
کلاس StringBuilder یک شی از نام فضای System.Text است بنابراین برای استفاده از StringBuilder در برنامه ما ما باید فضای نام System.Text را وارد کنیم.
تو سی شارپ اعلام StringBuilder و مقداردهی اولیه همانند کلاس است. در زیر راه های مختلفی برای اعلام و راه اندازی یک stringbuilder در زبان برنامه نویسی c # وجود دارد.
مثال
StringBuilder sb = new StringBuilder();
//or
StringBuilder sb = new StringBuilder("Welcome to Ayremloo.ir");
اگر شما کد بالا را مشاهده می کنید، ما یک نمونه از کلاس StringBuilder را با تعریف متغیر خود با روش های سازنده ایجاد کردیم
StringBuilder یک شی پویا است که به طور پویا به تعدادی از کاراکترها بر اساس تغییرات رشته متصل می شود. ما همچنین می توانیم یک ظرفیت اولیه از کاراکترها را مشخص کنیم، StringBuilder می تواند با عبور یک مقدار int با استفاده از یکی از سازنده های بارگذاری شده یا با استفاده از Property StringBuilder Capacity نگه دارد.
به عنوان مثال، ما یک StringBuilder با تعیین ظرفیت 10 کاراکتر و اضافه کردن یک رشته که طول آن بزرگتر از ظرفیت 25 کاراکتر است، ایجاد کردیم. در این مورد، فضای جدید به طور خودکار اختصاص داده می شود و ظرفیت StringBuilder دو برابر خواهد شد.
در زیر نمونه ای از مشخص کردن ظرفیت اولیه کاراکترهای StringBuilder می تواند در زبان برنامه نویسی c # نگهداری شود.
StringBuilder sb = new StringBuilder(10);
//or
StringBuilder sb = new StringBuilder("Hello World",10 );
//or
sb.Capacity = 10;
در سی شارپ هر زمان که ظرفیت تعریف شده از StringBuilder کمتر از مقدار رشته اضافه شده باشد، ظرفیت فعلی StringBuilder به طور خودکار افزایش می یابد تا مطابق با مقدار رشته اضافه شود.
ظرفیت پیش فرض StringBuilder به تعداد 16 کاراکتر است و حداکثر ظرفیت آن بیش از 12 میلیارد کاراکتر است.
در زیر لیست روشهای مهم StringBuilder را که ما می توانیم برای تغییر محتویات StringBuilder استفاده کنیم.
توضیحات
StringBuilder.Append این روش مقدار رشته داده شده را به پایان StringBuilder فعلی اضافه می کند.
StringBuilder.AppendFormat این یک مشخص کننده قالب را که در یک رشته با متن فرمت گرفته شده جایگزین می کند.
StringBuilder.Insert این یک رشته را در فهرست مشخص شده فعلی StringBuilder وارد می کند.
StringBuilder.Remove تعداد مشخصی از کاراکترهای StringBuilder فعلی را حذف می کند.
StringBuilder.Replace این یک کاراکتر مشخص در یک شاخص مشخص را جایگزین می کند.
روش Append برای افزودن یا اضافه کردن یک اشیاء رشته به انتهای رشته ای که توسط StringBuilder ارائه شده است استفاده می شود.
در زیر نمونه ای از آغاز کردن یک StringBuilder با برخی از متن ها و اضافه کردن یک متن مورد نیاز به انتهای شیء رشته است.
StringBuilder sb = new StringBuilder("ahmad");
sb.Append(", Reza");
sb.Append(", Ali");
Console.WriteLine(sb);
خروجی
ahmad,Reza,Ali
روش Insert برای قرار دادن یک رشته در موقعیت شاخص مشخص شده از جسم StringBuilder فعلی استفاده می شود.
در زیر نمونه ای از مقداردهی اولیه StringBuilder با برخی از متن ها و قرار دادن یک رشته در موقعیت شاخص مشخص شده از شی StringBuilder است.
در کارکتر8تم کلمه to به میان جمله اضافه میشه
StringBuilder sb = new StringBuilder("Welcome My Web"); sb.Insert(8, "to "); Console.WriteLine(sb); Console.ReadKey();
نتیجه
Welcome to My Web
روش حذف برای حذف تعداد مشخصی از کاراکتر از شی StringBuilder در حال حاضر، از موقعیت شاخص مشخص شده استفاده می شود.
در زیر نمونه ای از حذف تعداد مشخصی از کاراکتر از شی شی StringBuilder است که از موقعیت شاخص مشخص شده شروع می شود.
StringBuilder sb = new StringBuilder("Welcome to MyWeb"); sb.Remove(8, 3); Console.WriteLine(sb);
خروجی
Welcome MyWeb
روش جایگزینی برای جایگزینی تمام رخدادهای کاراکترهای رشته ای مشخص در شی StringBuilder فعلی با یک شخصیت رشته جایگزین مشخص استفاده می شود.
در زیر نمونه ای از جایگزین تعداد مشخصی از کاراکتر ها از شی StringBuilder با کاراکترهای جایگزین مشخص شده است
tringBuilder sb = new StringBuilder("Welcome to MyWeb"); sb.Replace("MyWeb", "C#"); Console.WriteLine(sb);
خروجی
Welcome to C#
در - StringBuilder سی شارپ دارای یک روش دیگر به نام AppendLine () است که برای اضافه کردن خط جدید به انتهای رشته استفاده می شود.
در زیر نمونه ای از استفاده از StringBuilder برای قرار دادن یا اضافه کردن یا جایگزینی یا حذف یک متن خاص در زبان برنامه نویسی c # است.
static void Main(string[] args) { StringBuilder sb = new StringBuilder("Ahmad"); sb.Append(", mohammad"); sb.Append(", Reza"); sb.AppendLine(); sb.Append("Welcome to MyWeb"); Console.WriteLine(sb); StringBuilder sb1 = new StringBuilder("Welcome World"); sb1.Insert(8, "to MyWeb"); Console.WriteLine("Insert String: " + sb1); StringBuilder sb2 = new StringBuilder("Welcome to Ayremloo.ir"); sb2.Remove(8, 3); Console.WriteLine(sb2); StringBuilder sb3 = new StringBuilder("Welcome to MyWeb World"); sb3.Replace("MyWeb", "CSharp"); Console.WriteLine(sb3); Console.ReadLine(); }
کد بالا را که میبینید ، برای استفاده از StringBuilder در برنامه ما یک System.Text نام فضای نامی وارد کردیم و از متدهای مختلف StringBuilder برای تغییرات مورد نیاز بر اساس الزامات ما استفاده کردیم.
هنگامی که ما برنامه C # بالا را اجرا میکنیم، نتیجه را همانطور که در زیر میبینید خروجی نمایش داده میشه.
Ahmad, mohammad, Reza
Welcome to MyWeb
Insert String: Welcome to MyWebWorld
Welcome Ayremloo.ir
Welcome to CSharp World
همچنین در سی شارپ، ما می تونیم با استفاده از روش StringBuilder.ToString () یک شیء StringBuilder را به رشته تبدیل کنیم.
در زیر نمونه ای از تبدیل یک شی StringBuilder به رشته با استفاده از روش ToString () اجرا میکنم
StringBuilder sb = new StringBuilder("Reza"); sb.Append(", Ahmad"); sb.Append(", Ali"); sb.AppendLine(); sb.Append("Welcome to MyWeb"); Console.WriteLine(sb.ToString()); Console.ReadLine();
خروجی
Reza, Ahmad, Ali Welcome to MyWeb