任务:
1.从根目录下读出address.txt的内容
2.找到其中的合法的手机号,把中间4位用*代替
3.把结果写入到address_new.txt文件中
package reg
import java.io.FileWriter
object reg04 {
def main(args: Array[String]): Unit = {
//1.从根目录下读出address.txt的内容
val content = scala.io.Source.fromFile("address.txt").mkString
println("读到的文件内容如下:")
println(content)
//2.找到其中的合法的手机号
val reg = "1[35789]\\d{9}".r //以1开头,第二位数字只能是3,5,7,9,共11位
println("找到的合法手机号如下:")
reg.findAllIn(content).foreach(ele=>println(ele))
//3.把手机号中间4位用*代替
val newContent = reg.replaceAllIn(content,ele => {
val phone = ele.toString()
phone.substring(0,3) + "****" + phone.substring(7) ////手机号前3位 + "****" + 手机号后4位
})
println("替换后的内容如下:")
println(newContent)
//4.把结果写入到address_new.txt文件中
val fileWriter = new FileWriter("address_new.txt")
fileWriter.write(newContent)
fileWriter.close()
}
}
运行结果如图:
address_new.txt的文件内容为:
代码第二步优化
//2.找到其中的合法的手机号,把中间4位(3-4-4)用*代替
val reg = "(1[356789]\d\d)(\d{4})(\d{3})".r
println("找到的合法手机号如下:")
reg.findAllIn(content).foreach(ele=>println(ele))
val newContent = reg.replaceAllIn(content,ele => {
println(ele.group(0))
println(ele.group(1))
println(ele.group(2))
println(ele.group(3))
//手机号前3位 + "****" + 手机号后4位
ele.group(1) + "****" + ele.group(3)
})
运行结果如图: