✅ 功能一览(与原图一致)
- 读文件
test.txt - 正则拆分单词(
\W+) - 转小写 + 频率统计
- 降序排序
- 彩虹渐变色输出(彩蛋)
💻 源码:WordRain.scala(< 30 行)
import scala.io.Source
import scala.util.Random
object WordRain {
def main(args: Array[String]): Unit = {
// 1. 读文件
val content = Source.fromFile("test.txt").mkString
// 2. 正则拆分 + 转小写
val words = content.split("\\W+").map(_.toLowerCase).filter(_.nonEmpty)
// 3. 频率统计(map +1)
val freq = words.foldLeft(Map.empty[String, Int]) {
(m, w) => m + (w -> (m.getOrElse(w, 0) + 1))
}
// 4. 降序排序
val sorted = freq.toList.sortBy(-_._2)
// 5. 彩虹输出(彩蛋)
sorted.foreach { case (w, c) =>
val color = f"\033[38;2;${233 - c * 2}%d;${100 + c * 3}%d;255m"
println(f"$color$w → $c\033[0m")
}
}
}
✅ 运行方式
# 准备测试文件
echo "Hello hello world! Scala scala, hello." > test.txt
# 编译 & 运行
scalac WordRain.scala
scala WordRain
🎨 终端效果(彩虹渐变)
hello → 3
scala → 2
world → 1
(每行颜色随频率渐变:蓝→紫→灰)
🏁 一句话口诀
**“读文件,正则拆,map 累加,sortBy 降序,彩虹输出!”**🌈