Rumah >Java >javaTutorial >Bagaimana untuk Mengira Kejadian Substring dengan Cekap dalam Rentetan?

Bagaimana untuk Mengira Kejadian Substring dengan Cekap dalam Rentetan?

Barbara Streisand
Barbara Streisandasal
2024-12-18 13:54:10814semak imbas

How to Efficiently Count Substring Occurrences in a String?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn