Chapter 11: Strings


Section 11.7: String concatenation and StringBuilders


Download 0.83 Mb.
bet8/12
Sana18.12.2022
Hajmi0.83 Mb.
#1031312
1   ...   4   5   6   7   8   9   10   11   12
Bog'liq
dasturlsh string

Section 11.7: String concatenation and StringBuilders


Satrlarni birlashtirish + operatori yordamida amalga oshirilishi mumkin. Masalan:
Odatda kompilyator ilovasi yuqoridagi birikmani kaput ostidagi StringBuilder yordamida amalga oshiradi. Kompilyatsiya qilinganida, kod quyidagiga o'xshash bo'ladi:

StringBuilder-da har xil turlarni qo'shish uchun bir nechta ortiqcha yuklangan usullar mavjud, masalan, String o'rniga int qo'shish. Misol uchun, dastur o'zgartirishi mumkin:

to the following:

Yuqoridagi misollar kodning bitta joyida samarali bajariladigan oddiy birlashtirish operatsiyasini ko'rsatadi. Birlashtirish StringBuilder ning bitta nusxasini o'z ichiga oladi. Ba'zi hollarda birlashma kumulyativ tarzda amalga oshiriladi, masalan, tsiklda:

Bunday hollarda kompilyatorni optimallashtirish odatda qo'llanilmaydi va har bir iteratsiya yangi StringBuilder ob'ektini yaratadi. Buni bitta StringBuilder-dan foydalanish uchun kodni aniq o'zgartirish orqali optimallashtirish mumkin:


StringBuilder faqat 16 belgidan iborat bo'sh joy bilan ishga tushiriladi. Agar siz kattaroq satrlarni qurishni oldindan bilsangiz, ichki bufer hajmini o'zgartirishga hojat qolmasligi uchun uni oldindan etarli hajmda ishga tushirish foydali bo'lishi mumkin:

StringBuilder buf = new StringBuilder(30); // Default is 16 characters buf.append("0123456789");



buf.append("0123456789"); // Would cause a reallocation of the internal buffer otherwise String result = buf.toString(); // Produces a 20-chars copy of the string If you are producing many strings, it is advisable to reuse StringBuilders:

Agar bir xil buferga bir nechta iplar yozilsa (va faqat bo'lsa), StringBuilder-ning sinxronlashtirilgan versiyasi bo'lgan StringBuffer-dan foydalaning. Odatda buferga faqat bitta ip yozishi sababli, StringBuilder dasturini sinxronizatsiyasiz ishlatish odatda tezroq bo'ladi.

Download 0.83 Mb.

Do'stlaringiz bilan baham:
1   ...   4   5   6   7   8   9   10   11   12




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling