1111

10 阅读1分钟
object Imp01 {
  // 隐式函数:Double转Int
  implicit def double2Int(d: Double): Int = {
    println("double2Int被调用了……")
    d.toInt
  }

  // 补充:String转Int的隐式函数
  implicit def string2Int(s: String): Int = {
    println("string2Int被调用了……")
    s.toInt
  }

  def main(args: Array[String]): Unit = {
    var i: Int = 1.1    // 调用double2Int
    i = 2.1             // 调用double2Int
    i = 3.1             // 调用double2Int
    i = "100" : String  // 调用string2Int

    var d: Double = 1   // Int自动转Double(Scala原生支持)
  }
}
object Scala9 {
  def main(args: Array[String]): Unit = {

    val content = try {
      scala.io.Source.fromFile("address").mkString
    } catch {
      case e: Exception =>
        println(s"读取文件失败:${e.getMessage}")
        return
    }
    println("读入进来的内容是:")
    println(content)


    val phoneReg = "^(1[3-9]\d{2})(\d{4})(\d{4})$".r


    val newContent = phoneReg.replaceAllIn(content, m => {

      println(s"匹配到的手机号:${m.group(0)}")
      println(s"分组1:${m.group(1)}")
      println(s"分组2:${m.group(2)}")
      println(s"分组3:${m.group(3)}")

      s"${m.group(1)}****${m.group(3)}"
    })

    println("替换之后的内容是:")
    println(newContent)
  }
  }