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.
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? Metod seçimləri
Metodun №1.
Metod, № 2.
Metod, № 3.
Metod, № 4.
Metod,
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 polimorfizmin əsas prinsiplərindən biridir .indexOf
Sinif 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 java
Sinif 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 indexOf
dö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. Diqqət etdiyiniz kimi, bu iki metodun imzasında (metodların arqument kimi qəbul etdiyi şeylər) ötürülən simvolun növü int
deyil, 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 char
ASCII 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 indexOf
bö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 indexOf
onu 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
!
GO TO FULL VERSION