用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 DSL的Gatling脚本开发:从零开始构建首个负载测试模型】
后端·测试工具·测试用例·scala·负载均衡·压力测试
洛克大航海2 天前
Ubuntu 中安装 Scala 及在 IntelliJ IDEA 中配置 Scala开发环境
scala·intellij-idea·ubuntu24.04
小坏讲微服务2 天前
SpringBoot4.0整合Scala完整使用
java·开发语言·spring boot·后端·scala·mybatis
bigdata-rookie2 天前
Scala 泛型
开发语言·后端·scala
卓码软件测评2 天前
【第三方CNAS软件测试机构:Gatling中的资源监控_实时收集服务器CPU、内存、磁盘I/O和网络指标】
后端·测试工具·测试用例·scala·压力测试
Dddd4 天前
Map映射
scala
哈基伊4 天前
26.<Set>用法 and <Map>用法
scala
渣渣盟5 天前
Flink数据流高效写入HBase实战
大数据·flink·scala·apache·hbase
渣渣盟6 天前
Flink数据流写入Elasticsearch实战
elasticsearch·flink·scala
小坏讲微服务8 天前
Spring Cloud Alibaba 整合 Scala 教程完整使用
java·开发语言·分布式·spring cloud·sentinel·scala·后端开发