دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۵
  • مرداد

جلسه ۲۱ : معرفی StringBuilder ها در زبان #C

  • دسته‌بندی‌ها :
جلسه ۲۱ : معرفی StringBuilder ها در زبان #C
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه :

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش #c ، را دنبال می کنند. در قسمت قبلی با enum در زبان برنامه نویسی #C آشنا شدید.در این قسمت شما را با StringBuilder ها در زبان #C در این زبان آشنا خواهیم کرد.

      یک رشته غیر قابل تغییر است، یعنی پس از ایجاد یک رشته نمی توان آن تغییر داد. به عنوان مثال، رشته جدید “!!Hello World ” فضای حافظه ای را در پشته اشغال خواهد کرد. حالا با تغییر رشته اولیه “!!Hello World ” به “Hello World! From Tutorials Teacher” به جای اصلاح رشته اولیه در همان آدرس حافظه ، یک رشته جدید را در پشته ایجاد می کند که موجب اشغال حافظه و بوجود آمدن مشکلاتی دیگر خواهد شد.

      متغیر String در حافظه

      متغیر String در حافظه

       

      برای حل این مشکل در زبان #C از StringBuilder استفاده می کنیم .StringBuilder یک شی پویا است که به شما اجازه می دهد تعداد نویسه های موجود در رشته را گسترش دهید. StringBuilder یک شیء جدید را در حافظه ایجاد نمی کند، و به صورت پویا حافظه را به اندازه رشته اصلاح شده گسترش می دهد.

      شی stringbuilder در حافظه

      شی stringbuilder در حافظه

       

      StringBuilder را میتوان همانند کلاس ها استفاده کرد مانند مثال زیر:

      مثال : 

       

      شما می توانید یک مقدار اولیه رشته ای را بهمراه یک مقدار int  به سازنده StringBuilder بفرستید .

      به عنوان مثال، کد زیر حافظه ۵۰ کاراکتر را به طور پیوسته برای  بر روی پشته حافظه اختصاص می دهد. تخصیص حافظه به طور خودکار پس از رسیدن به ظرفیت کامل گسترش می یابد.

      مثال : 

       

      متدهای StringBuilder در سی شارپ :

      توضیحاتنام متد
      مقادیر منتخب را به انتهای StringBuilder فعلی اضافه می کند.

      در AppendLine ابتدا رشته اضافه میشود و در آخر مکان نما به خط بعدی منتقل می شود.

      StringBuilder.Append(valueToAppend)

      StringBuilder.AppendLine(valueToAppend)

      جایگزینی فرمت مشخص شده در یک رشته با فرمت رشته مورد نظرStringBuilder.AppendFormat
      یک رشته را در رشته مشخص شده StringBuilder فعلی وارد می کند.StringBuilder.Insert(index, valueToAppend)
      تعداد مشخصی از کاراکتر ها را از محدوده ای مشخص شده در StringBuilder حذف می کند.StringBuilder.Remove(int startIndex, int length)
      جایگزینی کاراکترهاStringBuilder.Replace(oldValue, newValue)

       

      Append و AppendLine :

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

      مثال : 

      خروجی :

      مثال : 

       

      توجه: StringBuilder هنگام پیوند رشته های چندگانه سریعتر از رشته انجام می شود. اگر میخواهید بیش از سه چهار رشته اضافه کنید، از StringBuilder استفاده کنید. در مقابل برای اضافه کردن دو یا سه رشته بهتر است از همان String استفاده کنید.

       

      AppendFormat :

      از متد AppendFormat برای اضافه کردن رشته ای با فرمت خاص استفاده میکنیم مانند مثال زیر :

      مثال : 

      خروجی:

      مثال : 

       

      Insert :

      متد Insert رشته ای را در رشته مشخص شده در StringBuilder وارد می کند . به مثال زیر توجه کنید :

      مثال : 

      خروجی :

      مثال : 

       

      Remove :

      متد Remove رشته ای را از محدوده مشخص شده حذف میکند مانند کدهای زیر :

      مثال : 

      خروجی:

      مثال : 

       

      Replace :

      توسط متد Replace میتوان رشته ای را جایگزین یک رشته خاص در StringBuilder کرد مانند مثال زیر:

      مثال : 

      خروجی :

      مثال : 

       

      همانند String هر کاراکتر در StringBuilder نیز دارای شماره اندیس است ،میتوان با استفاده از یک حلقه for این مثال را پیاده سازی کرد.

      مثال : 

      خروجی :

      مثال : 

       

      ToString :

      به صورت پیش فرض نمیتوان رشته داخل StringBuilder را در متغیر نوع String قرار داد ولی توسط این متد میتوانیم ابتدا StringBuilder را به String تبدیل کرده سپس در داخل متغیر نوع رشته قرار دهیم.

      مثال : 

      خروجی :

      مثال : 

       

      چند نکته برای به خاطر سپردن :

      1. StringBuilder قابل تغییر است.
      2. تغییر رشته در StringBuilder سریعتر از String انجام می شود.
      3. StringBuilder همانند کلاس پیاده سازی شده و باید با کلمه کلیدی new استفاده گردد.
      4. هنگامی که بیش از سه یا چهار مورد تغییر در رشته نیاز باشد بهتر است از StringBuilder استفاده کنیم.
      5. متد Append برای اضافه کردن رشته ای به رشته مورد نظر در شی StringBuilder کاربرد دارد.
      6. متد ToString برای تبدیل شی StringBuilder  به String کاربرد دارد.

       

      در این بخش با شی StringBuilder  در زبان #C آشنا شدید.

      در بخش بعدی شما را با آرایه ها و کاربرد آنها در زبان #C آشنا خواهیم کرد.

       

      QR:  جلسه ۲۱ : معرفی StringBuilder ها در زبان #C
      به اشتراک بگذارید


      دیدگاه کاربران
      1. تصویر کاربر
      2. تصویر کاربر
      3. تصویر کاربر