Scala中身份证的使用

package hfd
import  scala.util.Random
//字符串
//知识点
//1.toInt把字符串转成整数
//2.toUpperCase变大写
//3.toLomerCase变小写
//4.substring(起点,终点,不包括)字符串截取
//5.chartAt(下标)得到对应位置的字符(不是字符串)
//6.asDigit把字符串转为数字
//7."""三引号字符串,支持换行
//8.contains是否包含子串
//9.
object Test29 {
  def main(args: Array[String]): Unit = {
    //val score=89
    val id="42032220080903332x"
    //1.生日是?
    //字符串截取
    val brithday=id.substring(10,14)//不包括终点下标
    println(s"生日:${brithday}")

    val year=id.substring(6,10)//6,7,8,9这个下标
    println(s"省份:${year}")//2008
 //性别:倒数第二位2
//如果是奇数:boy,偶数:girl
    //val gender=id(16)
    val gender=id.substring(16,17)
    println(gender)
    if(gender.toInt %2==0) {
      println("她是女生")
    }else{
      println("他是男生")
    }
    //前两位表示省份
    val province=id.substring(0,2).toInt
    val m1=Map((41,"河南"),(42,"湖北"),(43,"湖南"),(44,"广东"),(45,"广西"),(46,"海南"))
println(province)
    println(s"籍贯是:${m1.get(province)}")
    //    if(province==41){
//      println("省份为河南")
//      }else if(province==42) {
//      println("省份为湖北")
//    }else if(province==43){
//      println("省份为湖南")
//    } else if (province == 44) {
//      println("省份为广东")
//    } else if (province == 45) {
//      println("省份为广西")
//    } else if (province == 46) {
//      println("省份为海南")
//    }
    val weights=Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2)
    val checkCodes="10x98765432"
//id(0).toInt*meights(0)+id(i).toInt*meights(
    var sum=0
//对身份证的前17位,与对应的权重相乘做累加
    for(i<-0 to 16){
      sum+=id(i).toInt*weights(i)
    }
    //把累加的结果模11,找到对应的验证码
if(id.charAt(17)==checkCodes.charAt(sum%11)){
  println(s"身份证号${id}是合法的")
}else{
  println(s"身份证号${id}是不合法的")
}

  }
}
上一篇:「Mac玩转仓颉内测版25」基础篇5 - 布尔类型详解


下一篇:微软发布「AI Shell」