假设有单词数组: val arr = Array(“hello tom”,”hello jerry”,”hello hello”)需要对Array中的每个单词进行统计计数 Scala单词计数

本文介绍了如何在Scala中对Array中的每个单词进行统计计数。通过示例代码,展示了如何将单词数组拆分、映射为键值对、按key分组并计算每个单词的出现次数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Scala 对 Array中的每个单词进行统计计数

假设有单词数组:
val arr = Array(“hello tom”,”hello jerry”,”hello hello”)

需要对Array中的每个单词进行统计计数。

答案:

val arr = Array("hello tom","hello jerry","hello hello")
var result = arr.flatMap(_.split("\\s")).map((_,1)).groupBy(_._1).map(t=>(t._1,t._2.size))
println(result)

分步解析上述代码:

1.按空格拆分成字符串

//var result1=arr.flatMap(_.split("\\s"))
var result1=arr.flatMap(x=>x.split("\\s"))
println(result1.toBuffer)
println(result1)

在这里插入图片描述
2.将字符串映射成键值对的形式,value放1,为了后期计算

//var result2=result1.map((_,1))
var result2=result1.map(x=>(x,1))
println(result2.toBuffer)
println(result2)

在这里插入图片描述
3.按key分组

//var result3=result2.groupBy(_._1)
var result3=result2.groupBy(x=>x._1)
println(result3.get("hello").get.toBuffer)

在这里插入图片描述
4.查看数据类型格式,为了思路清晰

for((k,v)<- result3){
      println(k+"\t"+v.toBuffer)
    }

在这里插入图片描述
5.将上面得到的数据遍历,按key和value的长度映射成新Map

val result4=result3.map(x=>(x._1,x._2.length))
println(result4)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值