Rumah >Java >javaTutorial >Mengapa Algoritma Pengiraan Substring Saya Tidak Terhenti?

Mengapa Algoritma Pengiraan Substring Saya Tidak Terhenti?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-15 20:31:10372semak imbas

Why Doesn't My Substring Counting Algorithm Halt?

Mengapa algoritma yang diberikan tidak terhenti?

Dalam algoritma yang disediakan, percubaan dibuat untuk mencari bilangan kejadian subrentetan dalam rentetan. Walau bagaimanapun, algoritma direka untuk meneruskan sehingga indeks terakhir subrentetan dalam rentetan menjadi -1. Syarat ini tidak akan dapat dipenuhi kerana indeks terakhir sentiasa dikemas kini dengan menambah panjang subrentetan padanya. Akibatnya, algoritma akan terus mencari subrentetan selama-lamanya, tidak pernah ditamatkan.

Menggunakan Apache Commons Lang untuk Pengiraan Subrentetan

Pendekatan alternatif untuk mengira kejadian subrentetan ialah untuk menggunakan kaedah StringUtils.countMatches daripada Apache Commons Lang. Kaedah ini mengambil rentetan dan subrentetan sebagai argumen dan mengembalikan bilangan kali subrentetan muncul dalam rentetan. Menggunakan kaedah ini, masalah asal boleh diselesaikan dengan kod berikut:

String str = "helloslkhellodjladfjhello";
String findStr = "hello";

System.out.println(StringUtils.countMatches(str, findStr));

Kod ini mengeluarkan:

3

yang mengira kejadian subrentetan "hello" dengan betul dalam rentetan "helloslkhellodjladfjhello".

Atas ialah kandungan terperinci Mengapa Algoritma Pengiraan Substring Saya Tidak Terhenti?. 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