package hfd import scala.util.Random //字符串 //知识点 //1.toInt把字符串转成整数 //2.toUpperCase变大写 //3.toLomerCase变小写 //4.substring(起点,终点,不包括)字符串截取 //5.chartAt(下标)得到对应位置的字符(不是字符串) //6.asDigit把字符串转为数字 //7."""三引号字符串,支持换行 //8.contains是否包含子串 //9. object Test29 { def main(args: Array[String]): Unit = { //val score=89 val id="42032220080903332x" //1.生日是? //字符串截取 val brithday=id.substring(10,14)//不包括终点下标 println(s"生日:${brithday}") val year=id.substring(6,10)//6,7,8,9这个下标 println(s"省份:${year}")//2008 //性别:倒数第二位2 //如果是奇数:boy,偶数:girl //val gender=id(16) val gender=id.substring(16,17) println(gender) if(gender.toInt %2==0) { println("她是女生") }else{ println("他是男生") } //前两位表示省份 val province=id.substring(0,2).toInt val m1=Map((41,"河南"),(42,"湖北"),(43,"湖南"),(44,"广东"),(45,"广西"),(46,"海南")) println(province) println(s"籍贯是:${m1.get(province)}") // if(province==41){ // println("省份为河南") // }else if(province==42) { // println("省份为湖北") // }else if(province==43){ // println("省份为湖南") // } else if (province == 44) { // println("省份为广东") // } else if (province == 45) { // println("省份为广西") // } else if (province == 46) { // println("省份为海南") // } 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*meights(0)+id(i).toInt*meights( var sum=0 //对身份证的前17位,与对应的权重相乘做累加 for(i<-0 to 16){ sum+=id(i).toInt*weights(i) } //把累加的结果模11,找到对应的验证码 if(id.charAt(17)==checkCodes.charAt(sum%11)){ println(s"身份证号${id}是合法的") }else{ println(s"身份证号${id}是不合法的") } } }