任务

21 阅读1分钟
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

这样代码就能正常运行,可以连续输入身份证号进行验证。