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

Bagaimana untuk Mengira Kejadian Substring dengan Cekap dalam Rentetan?

Barbara Streisand
Lepaskan: 2024-12-18 13:54:10
asal
813 orang telah melayarinya

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);
Salin selepas log masuk

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);
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan