StringBuilder
StringBuilder برای الحاق کارآمد رشتهها: append، reverse، toString.
مشکل String در الحاق
String تغییرناپذیر است — هر + یک شیء جدید میسازد:
// در حلقه — بسیار ناکارآمد!
String result = "";
for (int i = 0; i < 1000; i++) {
result += i; ← هر بار رشته جدید! ۱۰۰۰ شیء ساخته میشود
}
StringBuilder — راهحل
رشته تغییرپذیر — الحاق بدون ساخت شیء جدید:
StringBuilder sb = new StringBuilder();
sb.append("سلام");
sb.append(" ");
sb.append("دنیا");
String result = sb.toString(); ← "سلام دنیا"
متدهای پرکاربرد
| متد | کاربرد | مثال |
|---|---|---|
append(x) | افزودن به انتها | sb.append("متن") |
reverse() | معکوس کردن | sb.reverse() |
length() | طول | sb.length() |
charAt(i) | کاراکتر | sb.charAt(0) |
insert(i, x) | درج در موقعیت | sb.insert(0, "→") |
deleteCharAt(i) | حذف کاراکتر | sb.deleteCharAt(0) |
toString() | تبدیل به String | sb.toString() |
مثال: ساخت رشته در حلقه
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= 5; i++) {
sb.append("خط ").append(i).append("\n");
}
System.out.println(sb.toString());
مثال: معکوس کردن رشته
String original = "جاوا";
String reversed = new StringBuilder(original).reverse().toString();
System.out.println(reversed); ← اوجا
مثال: بررسی پالیندروم
static boolean isPalindrome(String s) {
String reversed = new StringBuilder(s).reverse().toString();
return s.equals(reversed);
}
isPalindrome("madam") ← true
isPalindrome("java") ← false
زنجیرهکردن append
// append خودش را برمیگرداند — زنجیر کنید!
String result = new StringBuilder()
.append("نام: ")
.append("علی")
.append("، سن: ")
.append(25)
.toString();
قاعده: الحاق در حلقه یا متن زیاد → StringBuilder؛ الحاق ساده چندتایی → String با + کافی است.
این مبحث بخشی از دوره آموزش کامل جاوا است.