reg

19 阅读1分钟
package reg

object reg05 {
  def main(args: Array[String]): Unit = {
    // 1. 从文本文件中读出内容
    val content = scala.io.Source.fromFile("address.txt").mkString

    println("读入进来的内容是:")
    println(content)

    // 2. 写一个手机号的正则
    // 使用小括号() 分组
    val reg = """(1[35678]\d{2})(\d{4})(\d{4})""".r
    // val reg = "SB".r
    // 匹配输出
    // reg.findAllIn(content).foreach(println)

    // 替换:正则的典型的应用场景
    // replaceAllIn,全部替换。
    // 在content中通过正则去找字符段,找到了之后,就换成指定的内容,并把最终的结果保存到newContent
    // val newContent = reg.replaceAllIn(content, "这有个手机号")

    val newContent = reg.replaceAllIn(content, m => {
      println(m.group(0)) // 当前正则匹配到完整的内容
      println(m.group(1)) // 当前正则的第一个分组(第一个小括号)匹配到的内容
      println(m.group(2))
      println(m.group(3))

      m.group(1) + "****" + m.group(3)
    })

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

image.png

package imp

object imp01 {
  // 隐式 偷偷的....
  implicit def doublele2Int(d:Double):Int = {
    println("double2Int被调用了......")
    d.toInt
  }

  def main(args: Array[String]): Unit = {
    // 不能把Double类型 保存到Int.这样会用精度损失,不会自动做转换。
    var i:Int = 1.1
    // 可以把int类型保存到Double,会自动转换
    var d:Double = 1

  }

}

image.png