案例:验证字符串是否手机号
使用隐式类,给字符串添加一下新功能:验证当前字符串是否是手机号码。使用的格式如下:"13612345678".isPhone()
/*
* 需求:
* 让所有的字符串都具备一个功能:检查自己是不是一个合法的手机号?
*
* 1. 目前的字符串类是没有这个功能的。
*
* 2. 拓展String这个类
* */
object imp6 {
// 让所有的String对象,都有了一个新的方法 isPhone!
implicit class StrongString(s:String) {
def isPhone():Boolean = {
val reg = "^1[356789]\d{9}$".r
reg.matches(s)
}
}
def main(args: Array[String]): Unit = {
val str = new String("13612345678")
var str1 = "abaadsfsdfs"
// 判断自己是否是一个手机号
if(str1.isPhone){
println(s"${str1}是手机号")
} else {
println(s"${str1}不是手机号")
}
}
}
案例:计算阶乘
需求说明:给一个所有的整数添加一个功能,例如:3!=321。
println(3!) // 输出6
思路分析:与上面的增强版字符串一样,我们这的整数是增强版的整数。
import scala.language.postfixOps
object imp7 {
implicit class StrongString(n:Int) {
def !():Int = {
// println("阶乘......")
var s = 1
for(i <- 1 to n){
s *= i
}
s
}
}
def main(args: Array[String]): Unit = {
var k = 5; // 5 * 4 * 3 * 2 * 1
// 计算k的阶乘
printf(s"${k}的阶乘是:${k!}")
}
}