Scala编程实验三

这段博客展示了如何使用Scala进行文本分析,包括统计特定性别用户数量和执行单词计数。第一个实验统计了'男'性用户的数量,而第二个实验则对单词进行了计数并输出了每个单词的频次。

一、实验任务及结果

1.统计文本中性别为“男”的用户数

这是数据

代码实现:


import scala.io.Source

object test1 {
  def main(args: Array[String]):Unit= {
    val phone = Source.fromFile("test.txt")
    val lineIterator = phone.getLines().toList
    print(lineIterator)
    var man = 0
    for (line <- lineIterator) {
      if(line.contains("男")) man+=1
    }
//    print("共有男性"+(man)+"名。")
  }
}

2、单词计数

文本:

代码:

import java.util.Scanner

import scala.io.Source
object count_words {
  def main(args: Array[String]): Unit = {
    val text = Source.fromFile("words.txt")
    val lines = text.getLines().toList
    //数据转换
    val mappedWords = lines.flatMap(_.split(" ").map(_.trim)).filterNot(_
      .isEmpty).map((_,1))
    //根据数据进行分组
    val groupedWords: Map[String, List[(String, Int)]] = mappedWords.groupBy(tuple=>tuple._1)
    //每组进行数据计算
    val result = groupedWords.map(tuple=>{
      //获得Word单词(key)
      val word = tuple._1
      //计算该Word对应的数量(value)
      val count = tuple._2.map(t=>t._2).sum
      //返回结果
      (word,count)
    })
    println(result.toList)
  }
}

结果:

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fanstuck

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值