用Scala通过身份证号获得其他信息的方法
知识点
1.toInt。把字符串转成整型
2.toUpperCase。变大写
3.toLowerCase变小写
4.substring(起点,终点-不包括)字符串截取
5.charAt(下标)得到对应位置的字符(不是字符串)
6.asDigit.把字符转成数字
8.contains是否包含子串
9.length属性,用来获取有几个字符串。
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)
}
}
原文地址:https://blog.csdn.net/sxy_1030_/article/details/144031300
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!