计算字母在单词中的次数

时间:2018-02-01 16:25:28

标签: clojure

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

我试过了

    (for [letter (map str (seq describe))] 
      (count (re-seq letter describe)))

但是我收到了错误

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

非常感谢任何帮助

1 个答案:

答案 0 :(得分:9)

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

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

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

(frequencies [1 1 2 3])
=> {1 2, 2 1, 3 1}

键是计算的值,值是频率。