JavaRush /Java Blogu /Random-AZ /String sinfinin IndexOf metodu: niyə lazımdır və necə işl...

String sinfinin IndexOf metodu: niyə lazımdır və necə işləyir

Qrupda dərc edilmişdir
Salam! Proqramçılar tez-tez üsulları necə işlədiklərini düşünmədən avtomatik istifadə edirlər. Bunlar bilməli olduğunuz əsas texnikalardır.

Metodun həddindən artıq yüklənməsi nədir?

Başlıqda qeyd olunan metoda baxmadan əvvəl, həddindən artıq yükləmənin hansı metod olduğunu xatırlayaq (və kimsə biləcək). Java metodunun həddən artıq yüklənməsi eyni sinif daxilində eyni adlı iki və ya daha çox metodun müəyyən edilməsinə imkan verir. Bu, yalnız müxtəlif giriş parametrləri olduqda mümkündür. Bu halda üsullar həddən artıq yüklənmiş, prosesin özü isə metodun həddindən artıq yüklənməsi adlanır. Metodun həddən artıq yüklənməsi Java-da polimorfizminString sinifinin IndexOf metodu: niyə lazımdır və necə işləyir - 1 əsas prinsiplərindən biridir .

indexOfSinif metodu nə üçündür?String

Təsəvvür edin ki, uzun bir ipiniz var. Məsələn, bir məktub və siz artıq bildiyiniz bir adla ünvana ilk ünvanın yer aldığı yeri tapmaq lazımdır. Bunu necə edəcəksən? indexOf javaSinif metodundan istifadə edin String. Bu üsul, yuxarıda müzakirə etdiyimiz metodun həddindən artıq yüklənməsinə tipik bir nümunədir.

Metod seçimləriindexOf

Metodun java string indexOfdörd fərqli variantı var:

№1.indexOf(int ch)

Metod, int indexOf(int ch)göstərilən simvolun ilk baş verməsinin verilmiş sətirində indeksi qaytarır. Başqa sözlə desək, soldan sağa saymaqla verilmiş simvolun ilk dəfə baş verməsinin nömrəsini alacağıq. Misal:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('e');
   System.out.println(value);
}
Konsol çıxışı:

2
Axtardığımız simvol bu sətirdə deyilsə, -1 alacağıq.
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('j');
   System.out.println(value);
}
Konsol çıxışı:

-1
P.S. Heç nəyi qarışdırmamaq üçün unutmamalısınız ki, sətirdəki simvollar “1,2,3...”dən deyil, “0,1,2...”dən sayılır.

№ 2.indexOf(int ch, int fromIndex)

Metod, int indexOf(int ch, int fromIndex)göstərilən indeksdə axtarışa başlayaraq, göstərilən simvolun ilk baş verməsinin bu sətirdəki indeksini qaytarır. Bu üsul əvvəlkinin daha modernləşdirilmiş versiyasıdır. Fərq ondadır ki, biz axtarışın əslində başlayacağı elementin nömrəsini göstəririk. Misal:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('e',5);
   System.out.println(value);
}
Konsol çıxışı:

9
Axtarışın aparılacağı indeks sətrin uzunluğundan çox olarsa, cavab -1 olacaqdır. String sinifinin IndexOf metodu: niyə lazımdır və necə işləyir - 2Diqqət etdiyiniz kimi, bu iki metodun imzasında (metodların arqument kimi qəbul etdiyi şeylər) ötürülən simvolun növü intdeyil, kimi göstərilmişdir char. Ancaq çatdırdıq char. Bunun səbəbi, sətirlərin bayt massivi kimi saxlanmasıdır, burada xanalar növün xüsusi simvoluna uyğun gəlir char. Baytlar arasında uyğunluq charASCII cədvəlinə uyğun olaraq həyata keçirilir. ASCII (məlumat mübadiləsi üçün Amerika standart kodu) ümumi çap edilə bilən və çap olunmayan simvolları rəqəmsal kodlarla əlaqələndirən cədvəldir. Beləliklə, müəyyən bir simvol ötürüldükdə char, o, avtomatik olaraq ASCII cədvəlində həmin simvolu təmsil edən nömrəyə çevrilir. Buna əsaslanaraq ( int) rəqəmini birbaşa olaraq bizə lazım olan simvola uyğun gələn metoda ötürə bilərik. Məsələn, ASCII cədvəlindəki 'e' simvolu 101 rəqəminə uyğundur, buna görə də əvvəlki nümunəni təkrarlaya bilərik, lakin char:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf(101,5);
   System.out.println(value);
}
Konsol çıxışımız dəyişməyib:

9
PS Bəzi hallarda bu üsullar bir-birini əvəz edə bilər, məsələn, str.indexOf('e');oxşar olacaq - str.indexOf('e', 0);.

№ 3.indexOf(String str)

Metod, int indexOf(String str)göstərilən alt sətirin ilk baş verməsinin verilmiş sətirində indeksi qaytarır. Birinci variantdan əsaslı şəkildə fərqlənir ki, bu üsul artıq bütün alt sətiri ( String) axtarır. Bunun sayəsində daha konkret bir şey axtara bilərik. Misal:
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 çıxışı:

0
PS Bütün varyasyonlar indexOfböyük hərflərə həssasdır: böyük hərflər (böyük hərflər) və kiçik hərflər (kiçik hərflər) fərqli hesab olunur. Ehtiyatlı ol.

№ 4.indexOf(String str, int fromIndex)

Metod, indexOf(String str, int fromIndex)göstərilən indeksdən başlayaraq, göstərilən alt sətirin ilk baş verməsinin bu cərgəsində indeksi qaytarır. Bu seçim yenə daha modernləşdirilmiş əvvəlki variantdır, lakin axtarışın aparılacağı yerin göstəricisi ilə. Misal:
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 çıxışı:

26
P.S. Mənfi başlanğıc indeksini göstərsəniz, metod indexOfonu 0 kimi qəbul edəcək. Bu halda metod yenə əvvəlkinə bənzəyəcək (burada başlanğıc indeksi göstərilmir). Hamısı bu gün üçün. İndi Java sayəsində daha çox biliyə sahibsiniz indexOf!
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION