Mencari Kejadian Subrentetan dalam Rentetan
Dalam kod berikut, matlamat kami adalah untuk menentukan bilangan kali subrentetan findStr muncul dalam string str:
String str = "helloslkhellodjladfjhello"; String findStr = "hello"; int lastIndex = 0; int count = 0; while (lastIndex != -1) { lastIndex = str.indexOf(findStr, lastIndex); if (lastIndex != -1) count++; lastIndex += findStr.length(); } System.out.println(count);
Walau bagaimanapun, algoritma ini mungkin gagal untuk ditamatkan di bawah keadaan. Isunya terletak pada fakta bahawa lastIndex = findStr.length() mungkin menyebabkan algoritma mencari di luar hujung rentetan. Untuk menyelesaikan masalah ini, sebaliknya kita boleh menggunakan pendekatan berikut:
String str = "helloslkhellodjladfjhello"; String findStr = "hello"; int count = StringUtils.countMatches(str, findStr); System.out.println(count);
Kod ini menggunakan kaedah StringUtils.countMatches daripada Apache Commons Lang, yang menyediakan penyelesaian yang lebih mantap dan cekap untuk mengira kejadian subrentetan.
Atas ialah kandungan terperinci Bagaimana untuk Mengira Kejadian Substring dengan Cekap dalam Rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!