我正在学习scala并进行一些练习.
所以我需要编写一个函数,它返回一对(Char,Int)列表给定一个字符串作为输入.我只是通过在scala工作表中尝试一点来使它工作.
我的解决方案产生了正确的结果,我只是想知道这是否是一个很好的方法,或者可能有更好的方法.
def countChars(s: String): List[(Char, Int)] = {
s.groupBy(c => c.toLower).flatMap(e => List((e._1, e._2.length))).toList
}
Run Code Online (Sandbox Code Playgroud)
这会在工作表中生成如下结果:res3:List [(Char,Int)] = List((e,2),(s,2),(n,1),(a,1),(,1 ),(g,2),(r,2))
制作单例列表只是为了展平它是多余的.
"Green Grass".groupBy(c => c.toLower).map(e => (e._1, e._2.length)).toList
Run Code Online (Sandbox Code Playgroud)