JavaRush /Kurslar /All lectures for UZ purposes /Java da matnlar bilan ishlash

Java da matnlar bilan ishlash

All lectures for UZ purposes
Daraja, Dars
Mavjud

1. Матнларни солиштириш

Солиштириш — бу матнлар билан eng keng tarqalgan narsa. String sinfida matnlarni solishtirish uchun ishlatiladigan o'n dan ortiq turli metodlar mavjud. Quyida biz yettita asosiylarini ko'rib chiqamiz.

Методлар Таърифи
boolean equals(String str)
Matnlar teng bo'lib hisoblanadi, agar barcha belgilar mos kelsa.
boolean equalsIgnoreCase(String str)
Matnlarni solishtiradi, harf kattaligi (raskras) e'tiborsiz qilingan
int compareTo(String str)
Matnlarni leksikografik solishtiradi. Agar matnlar teng bo'lsa 0 qaytaradi. Joriy matn parametr matndan kichik bo'lsa, noldan kichik son. Joriy matn parametr matndan katta bo'lsa, noldan katta son qaytaradi
int compareToIgnoreCase(String str)
Matnlarni leksikografik solishtiradi, registring e'tiborsiz qiladi. Agar matnlar teng bo'lsa 0 qaytaradi. Joriy matn parametr matndan kichik bo'lsa, noldan kichik son. Joriy matn parametr matndan katta bo'lsa, noldan katta son qaytaradi
boolean regionMatches(int toffset, String str, int offset, int len)
Matnlarning qismlarini solishtiradi
boolean startsWith(String prefix)
Joriy matn prefix matni bilan boshlanishini tekshiradi
boolean endsWith(String suffix)
Joriy matn suffix matni bilan tugashini tekshiradi

Faraz qilaylik, siz foydalanuvchidan fayl manzilini kiritishni so'raydigan va faylni kengaytmasi bo'yicha tekshiradigan dastur yozmoqchisiz. Shunda bunday dastur kodi taxminan quyidagicha ko'rinishi mumkin edi:

Код Тушунтиришлар
Scanner console = new Scanner(System.in);
String path = console.nextLine();

if (path.endsWith(".jpg") || path.endsWith(".jpeg"))
{
   System.out.println("Bu Jpeg!");
}
else if (path.endsWith(".htm") || path.endsWith(".html"))
{
   System.out.println("Bu HTML-sahifa");
}
else if (path.endsWith(".doc") || path.endsWith(".docx"))
{
   System.out.println("Bu Word hujjati");
}
else
{
   System.out.println("Noma'lum format");
}
Scanner ob'ektini yaratish
Konsoldan matn o'qish

Matn path berilgan matnga tugashini tekshiramiz


2. Podstralarni qidirish

Matnlarni solishtirishdan keyingi eng mashhur operatsiya bu bir matnni boshqa bir matnda qidirishidir. String sinfi uchun ham bir nechta metodlar mavjud:

Методлар Таърифи
int indexOf(String str)
Joriy matnda str ni qidiradi. Birinchi uchragan matnning indeksini qaytaradi.
int indexOf(String str, int index)
Joriy matnda str ni qidiradi, birinchi index belgilarni o'tkazib yuboradi. Topilgan kirishni indeksini qaytaradi.
int lastIndexOf(String str)
Joriy matnda str ni oxirdan qidiring. Birinchi kirishni indeksini qaytaradi.
int lastIndexOf(String str, int index)
Joriy matnda str ni oxirdan qidiring, birinchi index belgilarni o'tkazib yuboradi.
boolean matches(String regex)
Joriy matnni berilgan regex bilan mos kelishini tekshiradi.

indexOf(String) va indexOf(String, index) metodlari ko'pincha birgalikda ishlatiladi. Birinchisi, joriy matnda berilgan podstrani birinchi kirishini topishga imkon beradi. Ikkinchisi esa, birinci index belgilarni o'tkazib yuborishi tufayli ikkinchi, uchinchi va boshqalarni topishga imkon beradi.

Masalan, bizda quyidagi kabi url bor: «https://domen.com/about/reviews», va biz domen nomini javarush.com ga o'zgartirmoqchimiz. URLdagi domenlar har xil bo'lishi mumkin, lekin bilamizki:

  • Domen nomidan oldin ikki chiziq // boradi
  • Domen nomidan keyin bitta slash / boradi

Bunday dastur kodi quyidagicha bo'ladi:

Код Тушунтиришлар
Scanner console = new Scanner(System.in);
String path = console.nextLine();

int index = path.indexOf("//");
int index2 = path.indexOf("/", index + 2);

String first = path.substring(0, index + 2);
String last = path.substring(index2);

String result = first + "javarush.com" + last;
System.out.println(result);
Scanner ob'ektini yaratish
Konsoldan matn o'qish

// matnni birinchi kirish indeksini olish
/ matnni birinchi kirish indeksini olish, faqat // belgilaridan keyin izlash.
// belgilaridan boshlab va ushbu belgilar bilan tugaydigan matnni olish
/ dan oxirigacha bo'lgan matnni olish.

Matnlarni birlashtirish va yangi domen.

lastIndexOf(String) va lastIndexOf(String, index) metodlari ham xuddi shunday ishlaydi, faqat matnni oxiridan boshiga qidiradi.



3. Podstralar yaratish

Matnlarni solishtirish va podstralarni qidirish bilan bir qatorda, yana bir mashhur ortiqcha harakat bu - matndan podstrani olish. Oldingi misolda, siz substring() metodining chaqirilishini ko'rdingiz, bu esa matnni bir qismini qaytardi.

Joriy matndan podstralarni olish uchun mavjud 8 metod ro'yxati:

Методлар Таърифи
String substring(int beginIndex, int endIndex)
Matndan beginIndex..endIndex belgilar intervaliga kiritilgan qismni qaytaradi.
String repeat(int count)
Joriy matnni count marta takrorlaydi
String replace(char oldChar, char newChar)
Yangi matnni qaytaradi: oldChar belgini newChar belgiga almashtiradi
String replaceFirst(String regex, String replacement)
Joriy matnda regex bilan berilgan birinchi kirishni almashtiradi.
String replaceAll(String regex, String replacement)
Joriy matnda regex bilan mos keladigan barcha kirishlarni almashtiradi.
String toLowerCase()
Matnni kichik harflarga o'zgartiradi
String toUpperCase()
Matnni katta harflarga o'zgartiradi
String trim()
Matndan boshlanishi va oxiridagi ortiqcha bo'sh joylarni olib tashlaydi

Mana amaldagi metodlarning qisqacha tavsifi:

Метод substring(int beginIndex, int endIndex)

substring metodi joriy matndan beginIndex belgidan boshlab va endIndex belgisigacha bo'lgan belgilarni o'z ichiga olgan yangi matn qaytaradi. Java'dagi barcha intervallar kabi, endIndex raqamli belgisi intervalga kiritilmaydi. Misollar:

Код Натижа
"Здравствуйте".substring(0, 3);
"Здр"
"Здравствуйте".substring(1, 4);
"драв"
"Здравствуйте".substring(1, 6);
"дравству"
"Здравствуйте".substring(1);
"дравствуйте"

Agar endIndex parametri ko'rsatilmagan bo'lsa (va bu mumkin), podstr joriy matndan beginIndex belgisi bilan boshlanadi va matn oxirigacha oladi.

Метод repeat(int n)

Repeat metodi faqat hozirgi matnni n marta takrorlaydi. Misol:

Код Натижа
"Salom".repeat(3);
"SalomSalomSalom"
"Salom".repeat(2);
"SalomSalom"
"Salom".repeat(1);
"Salom"
"Salom".repeat(0);
""

Метод replace(char oldChar, char newChar)

replace() metodi joriy matndan oldChar simvolni newChar simvolga almashtiradigan yangi matnni qaytaradi. Bu jarayonda matn uzunligi o'zgarmaydi. Misol:

Код Натижа
"Salom".replace('S', 's');
"salom"
"Salom".replace('m', 'n');
"Salon"
"Salom".replace('a', 'o');
"Solom"
"Salom".replace('a', 'y');
"Sylom"

Методлы replaceFirst() ва replaceAll()

replaceAll() metodi birinchi podstr kirishini boshqa podstrga almashtiradi. replaceFirst() metodi esa berilgan podstr kirishini birinchi kirishiga almashtiradi. Qayta almashtiriladigan matn regexp bilan beriladi. Рegular expressions mavzusini Java Multithreading квестында кўриб чикамиз.

Misollar:

Код Натижа
"Good news everyone!".replaceAll("e.", "EX");
"Good nEXs EXEXyonEX"
"Good news everyone!".replaceAll("o.", "-o-");
"G-o-d news every-o-e!"
"Good news everyone!".replaceFirst("e.", "EX");
"Good nEXs everyone!"
"Good news everyone!".replaceFirst("o.", "-o-");
"G-o-d news everyone!"

Методлы toLowerCase() ва toUpperCase()

Bu metodlar bilan tanishgan edik, birinchi marta String sinfining metodlarini chaqirishni o'rganganimizda.

Метод trim()

trim() metodi matndan boshlanishi va oxirida ortiqcha bo'sh joylarni olib tashlaydi. Matn ichidagi bo'sh joylarga tegilmaydi. Misollar:

Код Натижа
"     ".trim();
""
"Salom".trim();
"Salom"
" Salom\n qanday ishlar? \n   ".trim();
"Salom\n qanday ishlar?\n"
"  Parol\n   \n ".trim();
"Parol\n   \n"

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