计算字母在单词中的次数

rbb*_*rbb 1 clojure

我有了这个词describe,我想知道每个字母出现多少次.例如,"e"出现两次,"d"出现一次等

我试过了

    (for [letter (map str (seq describe))] 
      (count (re-seq letter describe)))
Run Code Online (Sandbox Code Playgroud)

但是我得到了错误

ClassCastException java.lang.String cannot be cast to java.util.regex.Pattern  clojure.core/re-matcher (core.clj:4667)
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激

Tay*_*ood 9

您可以使用frequencies计算每个字符在字符串中出现的频率,返回如下地图:

(frequencies "ababacdefg")
=> {\a 3, \b 2, \c 1, \d 1, \e 1, \f 1, \g 1}
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为字符串被视为一系列字符.frequencies可用于一般集合:

(frequencies [1 1 2 3])
=> {1 2, 2 1, 3 1}
Run Code Online (Sandbox Code Playgroud)

关键是要计算的值,值是频率.