String match = "hello";
String text = "0123456789hello0123456789";
int position = getPosition(match, text); // should be 10, is there such a method?
138
Keluarga metode yang melakukan ini adalah:
Mengembalikan indeks dalam string ini dari kemunculan pertama ( atau terakhir ) dari substring yang ditentukan [mencari maju ( atau mundur ) mulai dari indeks yang ditentukan].
String text = "0123hello9012hello8901hello7890";
String word = "hello";
System.out.println(text.indexOf(word)); // prints "4"
System.out.println(text.lastIndexOf(word)); // prints "22"
// find all occurrences forward
for (int i = -1; (i = text.indexOf(word, i + 1)) != -1; i++) {
System.out.println(i);
} // prints "4", "13", "22"
// find all occurrences backward
for (int i = text.length(); (i = text.lastIndexOf(word, i - 1)) != -1; i++) {
System.out.println(i);
} // prints "22", "13", "4"
Ini bekerja menggunakan regex.
Output:
Peraturan umum :
sumber
Lihat javadoc String
sumber
Menemukan indeks tunggal
Seperti yang orang lain katakan, gunakan
text.indexOf(match)
untuk menemukan satu kecocokan.Menemukan banyak indeks
Karena komentar @ StephenC tentang perawatan kode dan kesulitan saya sendiri dalam memahami jawaban @polygenelubricants , saya ingin mencari cara lain untuk mendapatkan semua indeks kecocokan dalam string teks. Kode berikut (yang dimodifikasi dari jawaban ini ) melakukannya:
sumber
Gunakan string.indexOf untuk mendapatkan indeks awal.
sumber
Anda bisa mendapatkan semua kecocokan dalam file hanya dengan menetapkan di dalam while-loop, keren:
sumber
i
dengan+1
bekerja, tetapi dengan cara yang agak bundar. Seperti yang Anda tunjukkan di sini, ia melaporkan yang pertamahello
dii == 1
. Ini jauh lebih konsisten jika Anda selalu menggunakan pengindeksan berbasis 0.sumber
sumber
Saya punya beberapa kode besar tetapi berfungsi dengan baik ....
sumber
sumber
sumber
Jika Anda akan memindai untuk kecocokan n 'dari string pencarian, saya akan merekomendasikan menggunakan ekspresi reguler . Mereka memiliki kurva belajar yang curam, tetapi mereka akan menghemat waktu Anda saat melakukan pencarian yang rumit.
sumber
untuk beberapa kejadian dan karakter ditemukan dalam string ?? ya atau tidak
sumber
sumber