در جلسه گذشته با متدهای کاربردی کلاس String آَشنا شدیم. در این جلسه میخواهیم 2 کلاس بسیار مهم و کاربردی به نام StringBuffer و StringBuilder را معرفی کنیم.
زمانی که در برنامهنویسی نیاز داشته باشیم رشتهای تولید کنیم و یا مداوم آن را تغیر دهیم از StringBuilder یا StringBuffer استفاده میکنیم. در برنامهنویسی همزمان که با thread ها کار میکنیم برای جلوگیری از تداخل دادهها بهتر است از StringBuffer استفاده کنیم اما StringBuilder سرعت بالاتری دارد و در حالت عادی بهتر است از StringBuilder استفاده شود. در این جلسه کلاس StringBuilder را بررسی میکنیم و توابع کاربردی این کلاس را معرفی و بررسی میکنیم.
اگر رشتهای درون تابع سازنده StringBuilder وارد کنید به عنوان داده اولیه مقداردهی میشود.
StringBuilder sb1=new StringBuilder();
StringBuilder sb1=new StringBuilder("my name is mehdi.");
این متد برای اضافه کردن یک رشته به انتهای رشته موجود استفاده میشود.
StringBuilder sb1=new StringBuilder();
sb1.append("my name is mehdi.");
sb1.append(100);
sb1.append("ali");
sb1.append(23.45);
sb1.append(true);
System.out.println(sb1);
خروجی
my name is mehdi.100ali23.45true
این متد دو عدد به عنوان شماره خانه شروع و پایان دریافت می کند و فاصله آن ها را از درون StringBuilder پاک میکند.
StringBuilder sb1=new StringBuilder("my name is mehdi.");
sb1.delete(0,3);
System.out.println(sb1);
خروجی
name is mehdi.
این متد یک عدد به عنوان شماره خانه و یک داده دریافت میکند. و آن را درون StringBuilder جایگذاری میکند.
StringBuilder sb1=new StringBuilder("my name is mehdi.");
sb1.insert(1,"$$$$$$$$$$$$$$");
System.out.println(sb1);
خروجی
m$$$$$$$$$$$$$$y name is mehdi.
این متد یک عدد به عنوان شماره خانه دریافت میکند و درون StringBuilder آن شماره خانه را پاک میکند.
StringBuilder sb1=new StringBuilder("my name is mehdi.");
sb1.deleteCharAt(2);
System.out.println(sb1);
خروجی
myname is mehdi.
این متد یک رشته دریافت میکند و درون StringBuilder آن رشته را جستجو میکند و شماره خانه آن را برمیگرداند.
StringBuilder sb1=new StringBuilder("my sajhgda dajsvd name is mehdi.");
int index=sb1.indexOf("mehdi");
System.out.println(sb1);
خروجی
26
این متد یک عدد و یک کاراکتر دریافت میکند و درون StringBuilder شماره خانهای که آن کاراکتر وجود داشته باشد را با کاراکتر دریافت شده ویرایش میکند.
StringBuilder sb1=new StringBuilder("my name is mehdi.");
sb1.setCharAt(3,'N');
System.out.println(sb1);
خروجی
my Name is mehdi.
این متد میزان فضای آشغال شده StringBuilder از حافظه را برحسب بایت برمیگرداند.
StringBuilder sb1=new StringBuilder("my name is mehdi.");
System.out.println(sb1.capacity());
خروجی
33
این متد طول StringBuilder را برمیگرداند.
StringBuilder sb1=new StringBuilder("my name is mehdi.");
System.out.println(sb1.length());
خروجی
17
این متد StringBuilder را برعکس میکند.
StringBuilder sb1=new StringBuilder("my name is mehdi.");
sb1.reverse();
System.out.println(sb1);
خروجی
.idhem si eman ym
این متد برای تبدیل StringBuilder به یک رشته استفاده میشود.
StringBuilder sb1=new StringBuilder("my name is mehdi.");
String temp=sb1.toString();
تمامی متدهایی که در بالا گفته شد برای کلاس StringBuffer هم وجود دارد و میتوان از آنها در کلاس StringBuffer نیز استفاده کرد.
بسیار خرسندیم که با یک جلسه دیگر از این آموزش جاوا پیشرفته در خدمت شما بودیم و توانستیم به پیشرفت شما دوستان عزیز کمک کنیم. شما عزیزان میتوانید برای دسترسی بیشتر به جلسات این دوره از آموزش، آن را دانلود کنید.
شما درسمنی های عزیز هر گونه سوال یا ابهامی از این جلسه داشتید میتوانید به انجمن برنامه نویسان جاوا مراجعه کنید و سوالات خود را بپرسید.
ممنون از همراهی شما