Scala第二天作业

1.使用foldLeft方法计算一个列表所有字符串的长度

val list = List("a", "bb", "ccc", "dddd")
list.foldLeft(0)((sum, value)=> sum + value.size)

2.编写一个ccensor trait,包含一个可将pucky和beans替换为shoot何darn的方法,使用映射存储脏话和它们的替代品

trait Censor {
    val map = Map(
        "Pucky" -> "Shoot",
        "Beans" -> "Darn"
    )
    def transform(words:String) = {

        map.foldLeft(words)(
            (words, mapReplace) =>
            words.replaceAll(
                ("(?i)\\b" + mapReplace._1 + "\\b"),
                mapReplace._2			    
            )
        )		
    }
}

class Say extends Censor
val hello = new Say()
println(hello.transform("hello Pucky and Beans"))

3.从一个文件中加载脏话或它们的代替品

import scala.io.Source  
 
if (args.length > 0) { 
	val lines = Source.fromFile(args(0)).getLines.toList
	for (line <- lines) {
		var words = line split " "
		for(word <- words) {
			word match {
				case "Pucky" => println(word)
				case "Shoot" => println(word)
				case "Beans" => println(word)
				case "Darn" => println(word)
				case _  => 
			}
		}
	}
} else  {
	Console.err.println("Please enter filename")  
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值