StringBuilder Java-da

All lectures for UZ purposes
Daraja, Dars
Mavjud

1. String-larni o'zgartirish

Java'da stringlar — bu o'zgarmas ob'yektlar (immutable). Buning sababi, string klassni kuchli optimallashtirib, uni keng qo'llashga imkon yaratishdir. Masalan, HashMap kolleksiyasida kalit sifatida faqat immutable turlarni ishlatishni tavsiya qilinadi.

Lekin ko'pincha dasturchilar uchun String-klassni o'zgartira olish qulay bo'ladi. Har safar metodini chaqirganda yangi podstring yaratmasdan foydalanish mumkin bo'ladi.

Masalan, bizda juda katta string bor va biz uning oxiriga tez-tez nimadir qo'shamiz. Bu holatda hatto belgi kolleksiyasi (ArrayList<Character>) stringlarni qayta yaratish va String turidagi ob'yektlarni birlashtirishdan ko'ra samaraliroq bo'lishi mumkin.

Shu sababdan Java tiliga stringni o'zgartira olish turi ham qo'shildi. Uning nomi StringBuilder.

Ob'yekt yaratish

StringBuilder ob'yektini mavjud string asosida yaratish uchun quyidagi buyruqni bajarish kerak:

StringBuilder nomi = new StringBuilder(string);

Bo'sh o'zgartiriladigan string yaratish uchun quyidagi buyruqdan foydalanish kerak:

StringBuilder nomi = new StringBuilder();

Metodlar ro'yxati

StringBuilder klassi yigirma chamasini foydali metodlarga ega, ulardan eng muhimlari:

Metod Tavsif
StringBuilder append(obj)
Berilgan ob'yektni stringga aylantiradi va joriy stringga qo'shadi
StringBuilder insert(int index, obj)
Berilgan ob'yektni stringga aylantiradi va joriy stringga qo'shadi
StringBuilder replace(int start, int end, String str)
Stringning start..end interval bilan belgilangan qismini berilgan string bilan almashtiradi
StringBuilder deleteCharAt(int index)
Stringdan index raqamli belgini o'chiradi
StringBuilder delete(int start, int end)
Stringdan interval bilan belgilanadigan belgilarni o'chiradi
int indexOf(String str, int index)
Joriy stringda podstringni qidiradi
int lastIndexOf(String str, int index)
Joriy stringda podstringni oxiridan qidiradi
char charAt(int index)
Stringning indeks raqamli belgisini qaytaradi
String substring(int start, int end)
Stringning interval bilan belgilangan qismini qaytaradi
StringBuilder reverse()
Stringni teskari o'zgartiradi.
void setCharAt(int index, char)
Stringning indeks raqamli belgisini belgilangan belgi bilan almashtiradi
int length()
Stringning belgilardagi uzunligini qaytaradi

Har bir metodning qisqacha tavsifi


2. Metodlar haqida qisqacha tavsif

Stringga qo'shish

O'zgartiriladigan stringga (StringBuilder) nimadir qo'shish uchun append() metodidan foydalanish kerak. Misol:

Kod Tavsif
StringBuilder builder = new StringBuilder("Salom");
builder.append("Xayr");
builder.append(123);
Salom
SalomXayr
SalomXayr123

Standart stringga aylantirish

StringBuilder ob'yektini String turiga aylantirish uchun shunchaki uning toString() metodini chaqirish kerak. Misol:

Kod Ekranga chiqarish
StringBuilder builder = new StringBuilder("Salom");
builder.append(123);
String natija = builder.toString();
System.out.println(natija);
Salom123

Belgini qanday o'chirish mumkin?

O'zgartiriladigan stringdan belgini o'chirish uchun deleteCharAt() metodidan foydalanish kerak. Misol:

Kod Ekranga chiqarish
StringBuilder builder = new StringBuilder("Salom");
builder.deleteCharAt(2);
String natija = builder.toString();
System.out.println(natija);
Saom

Stringning qismini boshqasiga qanday almashtirish mumkin?

Buning uchun replace(int begin, int end, String str) metodi mavjud. Misol:

Kod Ekranga chiqarish
StringBuilder builder = new StringBuilder("Salom");
builder.replace(2, 5, "Hello!");
String natija = builder.toString();
System.out.println(natija);
SaHello!m


3. Stringlar bilan ishlashda foydali misollar

Stringni teskari qanday aylantirish mumkin?

Bu operatsiya uchun maxsus metod — reverse() mavjud. Misol:

Kod Ekranga chiqarish
String str = "Salom";
StringBuilder builder = new StringBuilder(str);
builder.reverse();
String natija = builder.toString();
System.out.println(natija);
molаS

StringBuffer klassi

Boshqa bir klass bor — StringBuffer — bu StringBuilder klassining analogi, faqat uning metodlari synchronized modifikatoriga ega. Bu StringBuffer ob'ektiga bir vaqtda bir nechta oqimlardan kirish mumkinligini anglatadi.

Lekin u StringBuilderdan sezilarli darajada sekinroq ishlaydi. Bunday klass sizga kerak bo'lishi mumkin, qachonki siz Java Multithreading kvestida ko'p oqimlikni faol o'rganishni boshlaganda.


Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION