如何从字符串构建Map,计算每个字母的出现次数?

oo7oh9g9  于 2021-07-14  发布在  Java
关注(0)|答案(1)|浏览(211)

以下方法用于计算给定字符串中每个字符的出现次数: def countLetters(text: String): Map[Char, Int] = ??? 例如,输入字符串“aabaab”应该Map到

Map(a -> 5, b -> 3, c -> 1)

下面是一个简单的迭代方法:

def countLetters(text: String): Map[Char, Int] = {
  val h = collection.mutable.HashMap.empty[Char, Int]
  for (c <- text)
    h(c) = h.getOrElse(c, 0) + 1
  h.toMap
}

有没有办法在不循环和显式分配可变哈希Map的情况下实现它?

00jrzges

00jrzges1#

今天终于做到了!这就是我的工作原理: text.foldLeft(Map[Char, Int]() withDefaultValue 0){(h, c) => h.updated(c, h(c)+1)} 如果你正在读这篇文章,祝你下次好运!;)

相关问题