用Scala通过身份证号获得其他信息的方法

知识点

1.toInt。把字符串转成整型

2.toUpperCase。变大写

3.toLowerCase变小写

4.substring(起点,终点-不包括)字符串截取

5.charAt(下标)得到对应位置的字符(不是字符串)

6.asDigit.把字符转成数字

8.contains是否包含子串

9.length属性,用来获取有几个字符串。

Scala 复制代码
package test31
object test {
  def main(args: Array[String]): Unit = {
    val id = "44538198880930666X".toUpperCase//变大写
    //1.生日是?
    val birthday = id.substring(10, 14) //不包括终点下标
    println(s"生日是${birthday}")
    val year = id.substring(6, 10)
    println(s"年份是${year}")
    //性别:倒数第二位,如果基数就是boy,偶数:girl
    val gender = id.substring(16, 17)
    if (gender.toInt % 2 == 0) {
      println("性别是:girl")
    } else {
      println("性别是:boy")
    }
    //前两位表示省份
    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)
    }
    if(id.charAt(17) == checkCodes.charAt(sum%11)){
      println("校验通过")
    }else{
      println("校验失败")
    }
//    val m2=id(0).toInt*7+id(1).toInt*9+id(2).toInt*10+id(3).toInt*5+id(4).toInt*8+id(5).toInt*4+id(6).toInt*2+
//      id(7).toInt*1+id(8).toInt*6+id(9).toInt*3+id(10).toInt*7+id(11).toInt*9+id(12).toInt*10+id(13).toInt*5+
//      id(14).toInt*8+id(15).toInt*4+id(16).toInt*2
//    if (m2%11==id(17).toInt){
//      println("合法")
//    }else{
//      println("不合法")
//    }
    println("abcABC".toLowerCase)
    val str1="""
      静夜思 
        李白
                床前明月光,
                疑是地下霜。
    """ 
    println(str1)
    }
}
相关推荐
lucky_syq5 天前
Scala与Spark算子:大数据处理的黄金搭档
开发语言·spark·scala
深兰科技7 天前
廊坊市市长刘媛率队到访深兰科技,推动机器人制造基地与产业投资落地
人工智能·科技·机器人·scala·symfony·深兰科技·廊坊市市长刘媛
萧霍11 天前
判断两个对象是相等的
scala
程序员小羊!13 天前
Flink(用Scala版本写Word Count 出现假报错情况解决方案)假报错,一直显示红色报错
flink·word·scala
173116 天前
scala中访问控制与方法重写
scala
张较瘦_18 天前
[论文阅读] 从 5MB 到 1.6GB 数据:Java/Scala/Python 在 Spark 中的性能表现全解析
java·python·scala
还是大剑师兰特23 天前
Scala面试题及详细答案100道(81-90)-- 框架与生态
scala·大剑师·scala面试题
孤岛奇兵常凯申24 天前
Scala中的高阶函数(一)
scala
盛小夏25 天前
用 Python 把汉诺塔玩成“魔法”:从递归到可视化,一篇就够!
scala
智海观潮1 个月前
学好Spark必须要掌握的Scala技术点
大数据·spark·scala