PDA

View Full Version : سوال: فرق string و stringbuffer?



desatir7316
یک شنبه 20 آذر 1390, 11:05 صبح
سلام
دوستان ممنون می شم توی جواب این سوال راهنمایی کنید

در java فرق کلاس های string و stringbuffer در چیست؟


ممنون میشم راهنمایی کنید

spiderman200700
یک شنبه 20 آذر 1390, 18:10 عصر
همونطور که میدونی Strring یه دنباله ی تغییر ناپذیر از کاراکتر هاست که نمیشه تغییرش داد.
ولی در StrringBuffer کاراکتر ها و طول دنباله ی اون ها رو میشه تغییر داد.یعنی میشه یه کاراکتر یا یه String جدید رو به اول،وسط یا انتهای StrringBuffer اضافه کرد.
البته بیشتر برنامه نویس ها، به جای اینکه برای رشته هایی که قراره تغییر کنن ،از StrringBuffer استفاده کنن، با عملگر "+" و String معمولی، کارشونو راه میندازن.

اینم یه مثال ساده برای اینکه راحت تر درک کنی:
class StringBufferDemo {
public static void main(String args[]) {
StringBuffer sb = new StringBuffer("Hello");
System.out.println("buffer = " + sb);
System.out.println("length = " + sb.length());
System.out.println("capacity = " + sb.capacity());
}
}
اینم خروجی این برنامه:
buffer = Hello
length = 5
capacity = 21

capacity ظرفیت StringBuffer رو نشون میده.
میبینی که ، با اینکه یه رشته ی 5 کاراکتری بهش دادیم،ولی ظرفیتش 21 کاراکتره.
این نشون میده که StringBuffer ،به طور خودکار همیشه 16 کاراکتر فضای خالی برای اضافه کردن به رشته داخلش در نظر میگیره.

موفق باشی.

desatir7316
یک شنبه 27 آذر 1390, 18:33 عصر
دوستان توی مانشت اینجوری جواب داده بودن
http://www.manesht.ir/forum/showthread.php?tid=4600

phoenix87
یک شنبه 27 آذر 1390, 23:37 عصر
درسته میگه string نمیتونی مقدارشو عوض کنی اگه این کار رو بکنی جاوا اتوماتیک یه object دیگه ازش میسازه که تو خیال می کنی مقدارشو عوض کرده درحالی که پاکش کرده یه دونه جدید ساخته با مقدار جدید