JavaRush /Kurslar /All lectures for UZ purposes /String klassining tuzilishi

String klassining tuzilishi

All lectures for UZ purposes
Daraja, Dars
Mavjud

1. String klassining tuzilishi

Bugun biz String klassi haqida gaplashamiz. String klassi — Java'da int turidan keyin eng mashhur klass. U har joyda ishlatiladi. Uning bir talay foydali metodlari bor, ular haqida bilgan ma'qul, bilmagan yomon.

String klassi — switch ichida ishlatish mumkin bo‘lgan, primitiv turlaridan tashqari yagona kelas; kompilyator satr va obyektlarni qo‘shishni o‘ziga xos tarzda ishlov beradi; String obyekti xotirada o‘ziga xos tarzda saqlanadi. Umuman olganda, String klassi juda o‘zgacha klass.

Shuningdek, String klassida yana bir talay sputnik-klasslar mavjud, ularning maqsadi — Java'da satrlar bilan ishni yanada osonlashtirish. Agar siz bularning hammasini o‘rganib chiqsangiz, sizga ko‘p narsalar ancha oson bo‘ladi. Biz esa bu ekosistemani eng markaziy joyidan — String klassining tuzilishidan boshlaymiz.

Belgilar massivi

Aslida String klassi juda oddiy tarzda tuzilgan: uning ichida belgilar (char) massivi joylashgan, ularning hammasi satrdagi belgilarni saqlaydi. Masalan, «Salom» so‘zi shunday saqlanadi:

String klassining tuzilishi
Muhim!

Aslida hammasi biroz boshqacha. String klassi juda muhim bo‘lgani uchun, unda ko‘plab optimizatsiyalar qo‘llaniladi va ma'lumotlar belgi massivi shaklida emas, balki byte massivi shaklida saqlanadi.


2. String klassining metodlari

String klassida juda ko‘p metodlar mavjud: konstruktorlardan yarmi 18 ta! Shuning uchun quyida faqat eng asosiylarini keltiramiz:

Metodlar Ta'rif
int length()
Satrdagi belgilar sonini qaytaradi
boolean isEmpty()
Satr bo‘sh ekani tekshiradi
boolean isBlank()
Satrdagi faqat whitespace-belgilar: bo‘sh joy, tab, enter va h.k. tekshiradi
char charAt(int index)
Satrda index-pozitsiyada joylashgan belgini qaytaradi.
char[] toCharArray()
Satrni tashkil etuvchi belgilar (nusxa) massivi qaytaradi
byte[] getBytes()
Satrni byte to‘plamiga aylantiradi va byte massivini qaytaradi.
String[] split(String regex)
Satrni bir nechta substringlarga ajratadi.
String join(CharSequence delimiter, elements)
Bir nechta substringlarni birgalikda yopishtiradi
String intern()
Satrni StringPoolga joylashtiradi.

Konstruktorlar haqida ko‘proq ma'lumotni Konstruktor nima uchun kerak? maqolasidan bilib olishingiz mumkin.

Keling, Unix Style'dagi fayl yo‘lini Windows Style'ga o‘zgartiradigan dastur yozamiz. Unix direktoriyalar ajratgichi sifatida / belgisini, Windows esa \ belgisini ishlatadi.

Yeilim 1 — char massivdan foydalanish

Kod Izohlar
Scanner console = new Scanner(System.in);
String path = console.nextLine();

char[] chars = path.toCharArray();
for (int i = 0; i < chars.length; i++)
   if (chars[i] == '/')
      chars[i] = '\\';

String result = new String(chars);
System.out.println(result);
Scanner obyekti yaratish
Konsoldan satr o‘qish

Satrdan belgilar massivi yaratish
Belgilar orqali tsikl
Agar belgi / ga teng bo‘lsa,
uni \ ga almashtirish. Ekranlashni unutmaymiz.

Belgilar massivi asosida yangi satr yaratish.
Satrni ekranga chiqarish.

Yeilim 2 — split() va join() metodlaridan foydalanish:

Kod Izohlar
Scanner console = new Scanner(System.in);
String path = console.nextLine();

String[] array = path.split("/");


String result = String.join("\\", array);


System.out.println(result);
Scanner obyekti yaratish
Konsoldan satr o‘qish

Satrdan satrlar massivi yaratish. Ajratgich sifatida / belgisi ishlatiladi (qo‘shimcha ikkita slashes — bu ikki marta ekranlash natijasi).
satrlar massividagi barcha satrlarni birlashtirish, ajratgich sifatida \ belgisi ishlatiladi (biz uni ekranlangan holda ko‘ramiz).

Satrni ekranga chiqarish.

Yeilim 3 — replace(char oldChar, char newChar) metodidan foydalanish:

Kod Izohlar
Scanner console = new Scanner(System.in);
String path = console.nextLine();

String result = path.replace('/', '\\');

System.out.println(result);
Scanner obyekti yaratish
Konsoldan satr o‘qish

Shunchaki bir belgi o‘rniga boshqasini almashtirish
(ikkinchisi ekranlangan)
Satrni ekranga chiqarish.
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION