package hfd import scala.util.Random //字符串 //知识点 //1.toInt :把字符串转成整数 //2.toUpperCase : 变大写 //3.toLomerCase : 变小写 //4.substring(起点,终点不包括) 字符串截取 //5.charAt(下标) 得到相应位置的字符(不是字符串) //6.asDigit 把字符串转成数字 //7.""" 三引号字符串,支持换行 //8.contains 是否包含子串 //9.length属性 ,用来获取有几个字符 object Test31 { def main(args: Array[String]): Unit = { println("abc".contains("a")) println("abc".length) // val score = 89 val id = "420322200808033321".toUpperCase println(s"身份证号是:${id}") //1.生日是? //字符串获取 val birthday=id.substring(10,14) //不包括终点下标 println(s"生日是${birthday}") val year = id.substring(6,10) println(s"年份${year}") //性别:倒数第2位 // 如果是奇数是 boy, 偶数是 girl // val gender = id(16) val gender = id.charAt(16) println(gender) if(gender.asDigit % 2 == 0){ println("她是女生") } else{ println("他是男生") } //前两位表示省份 val provide = id.substring(0,2).toInt val m1 = Map((41,"河南"),(42,"湖北"),(43,"湖南"),(44,"广东"),(45,"广西"),(46,"海南")) println(provide) println(s"籍贯是:${m1.get(provide)}") // if(provide==41){ // println(s"籍贯是:河南") // }else if(provide == 42){ // println(s"籍贯是:湖北") // }else if(provide==43){ // println(s"籍贯是:湖南") // }else if(provide==44){ // println(s"籍贯是:广东") // }else if(provide==45){ // println(s"籍贯是:广西") // }else if(provide==46) { // println(s"籍贯是:海南") // } //验证身份证是否合法 //每一位的权重 val weights = Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2) val checkCodes = "10X98765432" // 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(0).toInt*7 var sum = 0 //对身份证的前17位,与对于的权重相乘累加 for (i <- 0 to 16){ sum += id(i).asDigit * weights(i) } println(sum%11) //把累加的结果模11,找到对于的校验码 if(id.charAt(17) == checkCodes.charAt(sum%11)){ println(s"身份证号${id}是合法的") }else{ println(s"身份证号${id}是不合法的") } val str1 =""" 静夜思 李白 床前明月光 疑是地上霜 """ } }
Scala中身份证的秘密
于 2024-11-26 21:09:29 首次发布