計算字串中的字元頻率
程式設計中的一個常見任務是計算給定字串中字元的頻率。假設我們有一個字串“aasjjikkk”。我們想要確定每個唯一字元的數量,結果是「2 'a', 1 's', 2 'j', 1 'i', 3 'k'。」
解決方案使用Java Map
一個有效的解決方案是使用Java Map,它將鍵(在本例中為字元)與值(它們出現的次數)關聯起來。我們遍歷字串並檢查每個字元是否已經在映射中。如果是,我們增加它的計數;否則,我們插入計數為 1 的字元。
<code class="java">Map<Character, Integer> map = new HashMap<>(); String s = "aasjjikkk"; for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); Integer val = map.get(c); if (val != null) { map.put(c, val + 1); } else { map.put(c, 1); } }
此方法以鍵值對格式提供字元計數的自然表示。
使用的替代解決方案Multiset
或者,Guava 的 Multiset 資料結構允許我們計算元素的出現次數,而無需明確維護映射。
<code class="java">Multiset<Character> multiset = HashMultiset.create(); String s = "aasjjikkk"; for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); multiset.add(c); }</code>
Multiset 現在會儲存陣列中每個字元的計數字串。
以上是如何高效統計字串中的字元出現頻率?的詳細內容。更多資訊請關注PHP中文網其他相關文章!