身份证号上的秘密

// 字符串
//知识点
//1.toInt 把字符串转成整数
//2.toUpperCase 变大写
//3.toLowerCase 变小写
//4.subString(起点,终点-不包括下标) 字符串截取
//5.charAt(下标) 得到对应位置的字符(不是字符串)
//6.asDigit 把字符转成文字
//7."""三引号字符串,支持换行
//8.contains 是否包含子串
//9.length属性:用来获取有几个字符
//10.拆分
object Test24 {
  def main(args: Array[String]): Unit = {

    println("abc".length)

    val id = "42032220080903332X"
    println(s"身份证号是:${id}")
    // 1. 生日是?
    // 字符串截取
    val birthday = id.substring(10,14) // 终点不包括下标
    println(s"生日是:${birthday}")

    val year = id.substring(6,10)
    println(s"年份是:${year}")

    //性别:倒数第二位
    // 如果是奇数:boy 偶数:girl
//    val gender = id(16)
    val gender = id.charAt(16)
    println(gender)
    if (gender.asDigit % 2 == 0){
        println("性别是:女孩")
    }else{
      println("性别是:男孩")
    }

    // 前两位表示省份
    // (1)
//    val province = id.substring(0,2)
//    println(province)
//    if (province.toInt == 41){
//      println("省份是:河南")
//    }else if(province.toInt == 42){
//      println("省份是:湖北")
//    }else if(province.toInt == 43){
//      println("省份是:湖南")
//    }else if (province.toInt == 44){
//      println("省份是:广东")
//    }else if (province.toInt == 45){
//      println("省份是:广西")
//    } else if (province.toInt == 46) {
//      println("省份是:海南")
//    }
    //(2)
//    val province = id.substring(0,2).toInt
//    println(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("省份是:海南")
//    }
    //(3)
//    val province = id.substring(0,2)
//    println(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("省份是:海南")
//    }
    //(4)
    val province = id.substring(0,2).toInt
    val m1 = Map((41,"河南"),(42,"湖北"),(43,"湖南"),(44,"广东"),(45,"广西"),(46,"海南"))
    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).asDigit * weights(i)
    }
    // 把累加的结果模11,找到对应的校验码
    if(id.charAt(17) == checkCodes.charAt(sum % 11)){
      println(s"身份证号${id}是合法的")
    }else{
      println(s"身份证号${id}是不合法的")
    }
    println("abcACB".toUpperCase)
    val str1 ="""
                  静夜思
                   李白
                 床前明月光
                 疑是地上霜
      """
  }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值