JavaRush /Blog Java /Random-MS /Kaedah IndexOf kelas String: mengapa ia diperlukan dan ca...

Kaedah IndexOf kelas String: mengapa ia diperlukan dan cara ia berfungsi

Diterbitkan dalam kumpulan
hello! Pengaturcara sering menggunakan kaedah secara automatik, tanpa memikirkan cara ia berfungsi. Ini adalah teknik asas yang anda mesti tahu.

Apakah kaedah terlebih beban?

Sebelum kita melihat kaedah yang disebutkan dalam tajuk, mari kita ingat (dan seseorang akan tahu) apakah kaedah overloading. Kelebihan kaedah Java membenarkan dua atau lebih kaedah dengan nama yang sama ditakrifkan dalam kelas yang sama. Ini hanya mungkin jika mereka mempunyai parameter input yang berbeza. Dalam kes ini, kaedah dipanggil terlebih beban, dan proses itu sendiri dipanggil kelebihan beban kaedah. Kaedah IndexOf kelas String: mengapa ia diperlukan dan cara ia berfungsi - 1Kelebihan kaedah adalah salah satu prinsip asas polimorfisme di Jawa.

Untuk apakah kaedah indexOfkelas ?String

Bayangkan anda mempunyai tali panjang. Sebagai contoh, surat, dan anda perlu mencari tempat di mana alamat pertama kepada penerima berlaku dengan nama yang anda sudah tahu. Bagaimana anda akan melakukan ini? Gunakan kaedah indexOf javakelas String. Kaedah ini adalah contoh tipikal kaedah lebihan beban, yang kami bincangkan di atas.

Pilihan kaedahindexOf

Kaedah ini java string indexOfmempunyai empat variasi berbeza:

No 1.indexOf(int ch)

Kaedah ini int indexOf(int ch)mengembalikan indeks dalam rentetan yang diberikan bagi kejadian pertama aksara yang ditentukan. Dalam erti kata lain, kita akan mendapat bilangan kejadian pertama aksara yang diberikan, mengira dari kiri ke kanan. Contoh:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('e');
   System.out.println(value);
}
Output konsol:

2
Jika watak yang kita cari tiada dalam baris ini, kita akan mendapat -1.
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('j');
   System.out.println(value);
}
Output konsol:

-1
PS Untuk tidak mengelirukan apa-apa, anda tidak boleh lupa bahawa aksara dalam baris dikira bukan dari "1,2,3...", tetapi dari "0,1,2..."

No 2.indexOf(int ch, int fromIndex)

Kaedah ini int indexOf(int ch, int fromIndex)mengembalikan indeks dalam rentetan kejadian pertama aksara yang ditentukan ini, memulakan carian pada indeks yang ditentukan. Kaedah ini adalah versi yang lebih moden daripada yang sebelumnya. Perbezaannya ialah kami menunjukkan bilangan elemen dari mana carian sebenarnya akan bermula. Contoh:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('e',5);
   System.out.println(value);
}
Output konsol:

9
Jika indeks dari mana carian akan dijalankan melebihi panjang rentetan, maka jawapannya ialah -1. Kaedah IndexOf kelas String: mengapa ia diperlukan dan cara ia berfungsi - 2Seperti yang anda mungkin perasan, dalam tandatangan kedua-dua kaedah ini (apa kaedah yang diambil sebagai hujah), jenis untuk simbol yang diluluskan dinyatakan sebagai int, bukan char. Walau bagaimanapun, kami menghantar char. Ini kerana rentetan disimpan sebagai tatasusunan bait, di mana sel sepadan dengan watak jenis tertentu char. Korespondensi antara bait chardijalankan mengikut jadual ASCII. ASCII (Kod standard Amerika untuk pertukaran maklumat) ialah jadual yang memetakan aksara biasa yang boleh dicetak dan tidak boleh dicetak kepada kod angka. Oleh itu, apabila aksara tertentu diluluskan char, ia ditukar secara automatik kepada nombor yang mewakili aksara tersebut dalam jadual ASCII. Berdasarkan ini, kita boleh terus menghantar nombor ( int) kepada kaedah, yang sepadan dengan watak yang kita perlukan. Sebagai contoh, aksara 'e' dalam jadual ASCII sepadan dengan nombor 101, jadi kita boleh mengulangi contoh sebelumnya, tetapi tanpa char:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf(101,5);
   System.out.println(value);
}
Output konsol kami tidak berubah:

9
PS Dalam sesetengah kes, kaedah ini boleh ditukar ganti, contohnya str.indexOf('e');ia akan serupa - str.indexOf('e', 0);.

No 3.indexOf(String str)

Kaedah ini int indexOf(String str)mengembalikan indeks dalam baris yang diberikan bagi kejadian pertama subrentetan yang ditentukan. Ia pada asasnya berbeza daripada pilihan pertama kerana kaedah ini sudah mencari keseluruhan subrentetan ( String). Terima kasih kepada ini, kita boleh mencari sesuatu yang lebih khusus. Contoh:
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);
}
Output konsol:

0
PS Semua variasi indexOfadalah sensitif huruf besar: huruf besar (huruf besar) dan huruf kecil (huruf kecil) dianggap berbeza. Berhati-hati.

No 4.indexOf(String str, int fromIndex)

Kaedah ini indexOf(String str, int fromIndex)mengembalikan indeks dalam baris ini kejadian pertama subrentetan yang ditentukan, bermula pada indeks yang ditentukan. Pilihan ini sekali lagi merupakan pilihan sebelumnya yang lebih moden, tetapi dengan petunjuk tempat dari mana carian akan dijalankan. Contoh:
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);
}
Output konsol:

26
PS Jika anda menentukan indeks permulaan negatif, kaedah indexOfakan menganggapnya sebagai 0. Dalam kes ini, kaedah itu sekali lagi akan serupa dengan yang sebelumnya (di mana indeks permulaan tidak dinyatakan). Itu semua untuk hari ini. Kini anda mempunyai lebih banyak pengetahuan terima kasih kepada indexOfJava!
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION