首頁 >Java >java教程 >如何高效統計字串中的字元出現頻率?

如何高效統計字串中的字元出現頻率?

Patricia Arquette
Patricia Arquette原創
2024-10-31 07:21:30722瀏覽

How to Efficiently Count Character Frequencies in a String?

計算字串中的字元頻率

程式設計中的一個常見任務是計算給定字串中字元的頻率。假設我們有一個字串“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中文網其他相關文章!

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