object strings {
def main(args: Array[String]): Unit = { // 修正1: Array[String] 和 : Unit
while(true) {
val str = scala.io.StdIn.readLine("请输入你要判断的身份证号:") // 修正2: scala.io.StdIn
// 判断是否18位
if(str.length == 18) {
// 获取第17位(索引16)判断性别
val genderChar = str.charAt(16)
val genderDigit = genderChar.toString.toInt
if(genderDigit % 2 == 0) {
println("这是一个女性")
} else {
println("这是一个男性")
}
} else {
println(s"${str}不是一个合适的身份证号码,长度不对") // 修正3: 字符串插值
}
}
}
}
如果要提取生日信息:
scala
object strings {
def main(args: Array[String]): Unit = {
while(true) {
val str = scala.io.StdIn.readLine("请输入你要判断的身份证号:")
if(str.length == 18) {
// 提取生日(第7-14位)
val birthdayStr = str.substring(6, 14)
val year = birthdayStr.substring(0, 4)
val month = birthdayStr.substring(4, 6)
val day = birthdayStr.substring(6, 8)
println(s"生日: ${year}年${month}月${day}日")
// 性别判断
val genderDigit = str.charAt(16).toString.toInt
if(genderDigit % 2 == 0) {
println("性别: 女")
} else {
println("性别: 男")
}
} else {
println(s"${str}不是一个合适的身份证号码,长度不对")
}
}
}
}
运行方式:
bash
scalac strings.scala
scala strings
这样代码就能正常运行,可以连续输入身份证号进行验证。