用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 天前
用结构化数据管理产品知识库
scala·bash·batch·actionscript
Thomas21434 天前
scala 闭包
开发语言·后端·scala
江畔柳前堤5 天前
前台·中台·后台:2026年AI原生时代的架构全景图
开发语言·人工智能·算法·机器学习·架构·scala·ai-native
Thomas214313 天前
Java scala 数组 链表
java·链表·scala
江畔柳前堤14 天前
消息队列:从直觉到精通的完整认知地图
开发语言·人工智能·算法·机器学习·ruby on rails·scala
hopsky1 个月前
《Scala 学习手册》核心内容详解
人工智能·学习·scala
abcy0712131 个月前
scala playframework 搭建与新建controller教程
scala
lpfasd1231 个月前
编程语言榜单变迁分析
开发语言·后端·scala
戮漠summer2 个月前
Missing Semester 计算机教育中缺失的一课 Lecture 01 Shell
开发语言·后端·scala
醉熏的石头2 个月前
Ubuntu 中的编程语言(中)
linux·ubuntu·scala