用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)
    }
}
相关推荐
深兰科技1 天前
深兰科技受邀参与第二届中国(南宁)—东盟人工智能场景应用对接会,深化AI国际合作
人工智能·qt·r语言·scala·symfony·智能机器人·深兰科技
开开心心就好5 天前
低年级识字练笔顺工具,电脑和安卓端都能用
前端·javascript·网络·安全·scala·erlang·语音识别
开开心心就好7 天前
清理此电脑网盘图标工具,开源免费好用
网络·网络协议·tcp/ip·智能手机·电脑·scala·erlang
典典分享指南10 天前
用结构化数据管理产品知识库
scala·bash·batch·actionscript
Thomas214313 天前
scala 闭包
开发语言·后端·scala
江畔柳前堤14 天前
前台·中台·后台:2026年AI原生时代的架构全景图
开发语言·人工智能·算法·机器学习·架构·scala·ai-native
Thomas214322 天前
Java scala 数组 链表
java·链表·scala
江畔柳前堤23 天前
消息队列:从直觉到精通的完整认知地图
开发语言·人工智能·算法·机器学习·ruby on rails·scala
hopsky1 个月前
《Scala 学习手册》核心内容详解
人工智能·学习·scala
abcy0712132 个月前
scala playframework 搭建与新建controller教程
scala