Scala中接收给定的一行字符串(例:hello-hello,hi,job-hi,…,依次切割英文逗号和“-”,可以得到每个单词); 统计各单词出现的次数。 测试说明 平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。
时间: 2024-09-27 13:18:09 浏览: 36
在Scala中,你可以使用`scala.util.Splitter`来按照指定的分隔符(在这里是英文逗号和破折号)对字符串进行切割,然后使用`Map`数据结构来统计每个单词的出现次数。以下是完成这个任务的一个示例:
```scala
import scala.collection.immutable.Map
import scala.util.Splitter
def wordCount(str: String): Map[String, Int] = {
// 使用Splitter按照逗号和破折号分割字符串
val words = str.split(",").flatMap(_.split("-"))
// 使用Map来存储单词及其计数,初始值为0
val wordCounts = words.map(word => (word, 0)).toMap
// 更新每个单词的计数
words.foreach(wordCounts(_) += 1)
wordCounts
}
// 测试示例
val testInput = "hello-hello,hi,job-hi"
val result = wordCount(testInput)
println(result) // 输出: Map(hello -> 2, hi -> 2, job -> 1)
```
在这个例子中,我们首先创建了一个`words`列表,其中包含了所有经过切割后的单词。接着,我们将这些单词作为键(key),对应的值初始化为0的映射`wordCounts`。最后遍历`words`并更新`wordCounts`。
阅读全文