Mencari Kejadian Subrentetan Dalam Rentetan: Penyelesaian Masalah dan Penyelesaian Alternatif
Apabila melaksanakan kod Java yang disediakan kepada bilangan kejadian subrentetan dalam rentetan, anda mungkin menghadapi masalah dengan algoritma tidak terhenti. Isu ini berpunca daripada kenaikan berterusan lastIndex tanpa meletakkan semakan untuk memastikan ia tidak melebihi had rentetan str.
Untuk menyelesaikan isu ini, ubah suai kod untuk memasukkan semakan bersyarat yang mengesahkan jika lastIndex masih dalam lingkungan str:
String str = "helloslkhellodjladfjhello"; String findStr = "hello"; int lastIndex = 0; int count = 0; while (lastIndex != -1 && lastIndex < str.length()) { lastIndex = str.indexOf(findStr, lastIndex); if (lastIndex != -1) count++; lastIndex += findStr.length(); } System.out.println(count);
Sebagai alternatif, anda boleh menggunakan StringUtils.countMatches kaedah daripada perpustakaan Apache Commons Lang:
String str = "helloslkhellodjladfjhello"; String findStr = "hello"; System.out.println(StringUtils.countMatches(str, findStr));
Kaedah ini memudahkan proses mengira kejadian subrentetan dan memastikan penyelesaian yang cekap dan boleh dipercayai.
Atas ialah kandungan terperinci Bagaimana untuk Mengira Kejadian Substring dengan Cekap di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!