JavaRush /Java blogi /Random-UZ /String sinfining IndexOf usuli: u nima uchun kerak va u q...

String sinfining IndexOf usuli: u nima uchun kerak va u qanday ishlaydi

Guruhda nashr etilgan
Salom! Dasturchilar ko'pincha usullarni qanday ishlashi haqida o'ylamasdan avtomatik ravishda ishlatishadi. Bu siz bilishingiz kerak bo'lgan asosiy texnikalar.

Usulni ortiqcha yuklash nima?

Sarlavhada aytib o'tilgan usulni ko'rib chiqishdan oldin, haddan tashqari yuklash qanday usul ekanligini eslaylik (va kimdir bilib oladi). Java usulini haddan tashqari yuklash bir xil nomdagi ikki yoki undan ortiq usullarni bir sinf ichida aniqlash imkonini beradi. Bu faqat ular turli xil kirish parametrlariga ega bo'lsa mumkin. Bunday holda, usullar haddan tashqari yuklangan deb ataladi va jarayonning o'zi usulning ortiqcha yuklanishi deb ataladi. Usulni ortiqcha yuklash Java-da polimorfizmningString sinfining IndexOf usuli: u nima uchun kerak va u qanday ishlaydi - 1 asosiy tamoyillaridan biridir .

indexOfSinf usuli nima uchun?String

Tasavvur qiling, sizda uzun ip bor. Masalan, xat va siz qabul qiluvchiga birinchi manzilni siz allaqachon bilgan nom bilan topishingiz kerak. Buni qanday qilasiz? indexOf javaSinf usulidan foydalaning String. Bu usul usulni haddan tashqari yuklashning odatiy namunasidir, biz yuqorida muhokama qildik.

Usul variantlariindexOf

Usul java string indexOfto'rt xil variantga ega:

№ 1.indexOf(int ch)

Usul int indexOf(int ch)ko'rsatilgan belgining birinchi paydo bo'lishining berilgan qatoridagi indeksni qaytaradi. Boshqacha qilib aytganda, biz chapdan o'ngga sanab, berilgan belgining birinchi marta paydo bo'lish raqamini olamiz. Misol:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('e');
   System.out.println(value);
}
Konsol chiqishi:

2
Agar biz izlayotgan belgi bu qatorda bo'lmasa, biz -1 olamiz.
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('j');
   System.out.println(value);
}
Konsol chiqishi:

-1
P.S. Hech narsani chalkashtirib yubormaslik uchun satrdagi belgilar “1,2,3...” dan emas, “0,1,2...” dan sanalishini unutmasligingiz kerak.

№ 2.indexOf(int ch, int fromIndex)

Usul int indexOf(int ch, int fromIndex)ko'rsatilgan indeksda qidirishni boshlab, ko'rsatilgan belgining birinchi paydo bo'lishining ushbu qatoridagi indeksni qaytaradi. Ushbu usul avvalgisining yanada modernizatsiya qilingan versiyasidir. Farqi shundaki, biz qidiruv aslida boshlanadigan elementning raqamini ko'rsatamiz. Misol:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('e',5);
   System.out.println(value);
}
Konsol chiqishi:

9
Agar qidiruv o'tkaziladigan indeks satr uzunligidan oshsa, javob -1 bo'ladi. String sinfining IndexOf usuli: u nima uchun kerak va u qanday ishlaydi - 2E'tibor bergan bo'lsangiz kerak, bu ikki usulning imzosida (usullar argument sifatida nimani oladi) o'tkazilayotgan belgining turi emas int, balki ko'rsatilgan char. Biroq, biz uzatdik char. Buning sababi shundaki, satrlar bayt massivi sifatida saqlanadi, bu erda hujayralar turdagi ma'lum bir belgiga mos keladi char. Baytlar orasidagi yozishmalar charASCII jadvaliga muvofiq amalga oshiriladi. ASCII (Axborot almashish uchun Amerika standart kodi) - bu umumiy bosma va chop etilmaydigan belgilarni raqamli kodlarga taqqoslaydigan jadval. Shuning uchun, ma'lum bir belgi o'tkazilganda char, u avtomatik ravishda ASCII jadvalidagi ushbu belgini ifodalovchi raqamga aylanadi. Bunga asoslanib, biz to'g'ridan-to'g'ri raqamni ( int) usuliga o'tkazishimiz mumkin, bu bizga kerakli belgiga mos keladi. Masalan, ASCII jadvalidagi 'e' belgisi 101 raqamiga to'g'ri keladi, shuning uchun biz oldingi misolni takrorlashimiz mumkin, ammo char:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf(101,5);
   System.out.println(value);
}
Bizning konsol chiqishimiz o'zgarmadi:

9
PS Ba'zi hollarda, bu usullar bir-birini almashtiradi, masalan, str.indexOf('e');u o'xshash bo'ladi - str.indexOf('e', 0);.

№ 3.indexOf(String str)

Usul int indexOf(String str)ko'rsatilgan pastki qatorning birinchi paydo bo'lishining berilgan qatoridagi indeksni qaytaradi. Bu birinchi variantdan tubdan farq qiladi, chunki bu usul allaqachon butun pastki qatorni ( String) qidiradi. Buning yordamida biz aniqroq narsani izlashimiz mumkin. Misol:
public static void main(String[] args) {
   String str = "Diego, where is my money? Diego,you made me very upset";
   int value = str.indexOf("Diego");
   System.out.println(value);
}
Konsol chiqishi:

0
PS Barcha o'zgarishlar indexOfkatta-kichik harflarga sezgir: katta harflar (katta harflar) va kichik harflar (kichik harflar) boshqacha hisoblanadi. Diqqatli bo'ling.

№ 4.indexOf(String str, int fromIndex)

Usul indexOf(String str, int fromIndex)belgilangan indeksdan boshlab, ko'rsatilgan pastki qatorning birinchi paydo bo'lishining ushbu qatoridagi indeksni qaytaradi. Ushbu parametr yana modernizatsiya qilingan oldingi variant, ammo qidiruv o'tkaziladigan joyni ko'rsatgan holda. Misol:
public static void main(String[] args) {
   String str = "Diego, where is my money? Diego,you made me very upset";
   int value = str.indexOf("Diego", 1);
   System.out.println(value);
}
Konsol chiqishi:

26
PS. Agar siz salbiy boshlanish indeksini belgilasangiz, usul indexOfuni 0 sifatida qabul qiladi. Bunday holda, usul yana avvalgisiga o'xshash bo'ladi (boshlanish indeksi ko'rsatilmagan). Hammasi bugun uchun. Endi Java tufayli ko'proq bilimga ega bo'lasiz indexOf!
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION