Scala中的身份证密码

package test_30
//1.toInt把字符串转成整数
object test {
  def main(args: Array[String]): Unit = {
    val id="420923200209145648"
    //1.生日是?
    //字符串汲取
    val birthday=id.substring(10,14)//不包括终点下标
    println(s"生日是:${birthday}")

    val year=id.substring(6,10)//6,7,8,9这个下标
    println(s"年份是:${year}")

    //性别:倒数第二位
   // 如果是奇数:boy,偶数:girl
    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,"广东"))
 println(s"籍贯是:${m1.get(province)}")
    //验证身份证号码是否合法?
    //每一位的权重
    val weights=Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2)
    val  checkCodes="10x98765432"
    var sum=0
    for (i<-0 to 16){
      sum+=id(i).toInt*weights(i)
    }
if(id.charAt(17)==checkCodes.charAt(sum%11)) {
  println(s"身份证号${id}是合法的")
}else{
  println(s"身份证号${id}是不合法的")
}

  }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值