為什麼給定的演算法沒有停止?
在提供的演算法中,嘗試找出子字串出現的次數在一個字串中。然而,該演算法被設計為一直持續到字串中子字串的最後一個索引變為-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中文網其他相關文章!