首頁 >Java >java教程 >為什麼我的子字串計數演算法不停止?

為什麼我的子字串計數演算法不停止?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-15 20:31:10372瀏覽

Why Doesn't My Substring Counting Algorithm Halt?

為什麼給定的演算法沒有停止?

在提供的演算法中,嘗試找出子字串出現的次數在一個字串中。然而,該演算法被設計為一直持續到字串中子字串的最後一個索引變為-1。這個條件永遠不會滿足,因為最後一個索引總是透過添加子字串的長度來更新。因此,演算法將無限期地繼續搜尋子字串,永不終止。

使用 Apache Commons Lang 進行子字串計數

計算子字串出現次數的另一種方法是利用 Apache Commons Lang 中的 StringUtils.countMatches 方法。此方法接受一個字串和一個子字串作為參數,並傳回子字串在字串中出現的次數。使用此方法,可以透過以下程式碼解決原始問題:

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

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

此程式碼輸出:

3

它正確地計算了子字串「hello」在字串「helloslkhellodjladfjhello 」。

以上是為什麼我的子字串計數演算法不停止?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn