版权声明:版权声明:本文为博主原创文章,转载请附上博文链接! https://blog.csdn.net/qq_42246689/article/details/85108992
6、Scala 编程练习
6.1、99 乘法表
package com.mazh.scala.funny
object Table99 {
def main(args: Array[String]): Unit = {
for (i <- 1 to 9){
for (j <- 1 to i){
printf("%d*%d=%2d\t", i, j, (i*j))
}
println()
}
}
}
其实也可以利用 scala 的语法特性,使用一句代码完成:
for(a <- 1 to 9; b <- 1 to a) printf("%d*%d=%d%s", a, b, a*b, if(a==b) "\n" else "\t")
或者:
for(x<- 1 to 9;y<- 1 to x )print(s"$y*$x=${x*y}${if(x==y) "\n" else "\t"}")
6.2、Scala 版本的 WordCount
现在有一个数组变量读入了一段话形成了一个数组,求出这段话中的每个单词的出现次数, 简单来说,就是单词统计:
val array = Array("hello huangbo", "hello xuzheng", "hello wangbaoqiang")
结果:
array.flatMap(_.split(" ")).map( (_,1)).groupBy(t => t._1).map(t =>(t._1,t._2.length)) .toList.sortBy(t => t._2).reverse
扫描二维码关注公众号,回复:
4632420 查看本文章
6.3、Scala 版本的插入排序 InsertSort
package com.mazh.scala.sort
import scala.util.control.Breaks
object InsertSort {
def main(args: Array[String]): Unit = {
val array = Array(4,12,6,3,8,9,5)
val ab = array.toBuffer
// 创建 Breaks对象
val forLoop = new Breaks
for (i <- 1 until ab.length){
val value_i = ab(i)
// 把需要可能 break的代码放在 breakable 中执行
forLoop.breakable{
for (j <- 0 to i - 1){
val value_j = ab(j)
if (value_j > value_i){
ab.remove(i, 1)
ab.insert(j, value_i)
// 使用 break进行跳出
forLoop.break()
}
}
}
}
println(ab)
}
}