scala基础——判断手机号运营商

如何


通过scala代码编写函数实现手机号归属运营商判断

参考GPT和自己的思路:

好的,对于这个问题,我可以给您提供一个Scala代码实现的示例:

object MobileOperator {
  def getMobileOperator(mobileNum: String): String = {
    val chinaMobile = Array("134", "135", "136", "137", "138", "139", "147", "150", "151", "152", "157", "158", "159", "182", "183", "184", "187", "188")
    val chinaUnicom = Array("130", "131", "132", "145","155", "156", "166", "176", "185", "186")
    val chinaTelecom = Array("133", "149", "153", "173", "177", "180", "181", "189")
    val otherTelecom = Array("170", "171")
    val mobilePrefix = mobileNum.substring(0, 3)
    
    mobilePrefix match {
      case s if chinaMobile.contains(s) => "中国移动"
      case s if chinaUnicom.contains(s) => "中国联通"
      case s if chinaTelecom.contains(s) => "中国电信"
      case s if otherTelecom.contains(s) => "其他运营商"
      case _ => "未知运营商"
    }
  }
}

以上代码定义了一个MobileOperator对象,其中包含一个名为getMobileOperator的方法,用于判断给定手机号的运营商。具体实现时,我们将所有运营商的号段以数组的形式罗列出来,然后通过字符串的匹配来判断手机号属于哪个运营商。如果匹配失败,则返回“未知运营商”。

使用时,您可以通过以下代码调用该方法:

val mobileNum = "13612341234"
val operator = MobileOperator.getMobileOperator(mobileNum)
println(s"手机号 $mobileNum 属于 $operator 运营商")

以上代码会输出类似以下内容的结果:

手机号 13612341234 属于 中国移动 运营商

希望这个Scala代码实现可以对您有所帮助。