定义字符串:
1.双引号
2.三引号
string 类型,字符串
常用的方法:
1.长度 length属性
2.下标 从0开始,表示第一个字符
3.截取 在一个长的字符串中,取出一部分
class Scala1 {
object IDCardInfo {
// 提取生日(格式:MM-dd)
def getBirthday(idCard: String): String = {
val month = idCard.substring(10, 12)
val day = idCard.substring(12, 14)
s"$month-$day"
}
// 提取性别(第17位:奇数→男,偶数→女)
def getGender(idCard: String): String = {
val genderCode = idCard.charAt(16).asDigit
if (genderCode % 2 == 1) "男" else "女"
}
// 计算年龄(基于当前年份2025)
def getAge(idCard: String): Int = {
val birthYear = idCard.substring(6, 10).toInt
2025 - birthYear
}
// 提取省份(简化版:仅覆盖部分省份代码)
def getProvince(idCard: String): String = {
val provinceCode = idCard.substring(0, 2)
provinceCode match {
case "11" => "北京市"
case "12" => "天津市"
case "13" => "河北省"
case "14" => "山西省"
case "31" => "上海市"
case "32" => "江苏省"
case "44" => "广东省"
case _ => "未知省份"
}
}
// 计算星座
def getZodiac(idCard: String): String = {
val month = idCard.substring(10, 12).toInt
val day = idCard.substring(12, 14).toInt
if ((month == 1 && day >= 20) || (month == 2 && day <= 18)) "水瓶座"
else if ((month == 2 && day >= 19) || (month == 3 && day <= 20)) "双鱼座"
else if ((month == 3 && day >= 21) || (month == 4 && day <= 19)) "白羊座"
else if ((month == 4 && day >= 20) || (month == 5 && day <= 20)) "金牛座"
else if ((month == 5 && day >= 21) || (month == 6 && day <= 20)) "双子座"
else if ((month == 6 && day >= 21) || (month == 7 && day <= 22)) "巨蟹座"
else if ((month == 7 && day >= 23) || (month == 8 && day <= 22)) "狮子座"
else if ((month == 8 && day >= 23) || (month == 9 && day <= 22)) "处女座"
else if ((month == 9 && day >= 23) || (month == 10 && day <= 22)) "天秤座"
else if ((month == 10 && day >= 23) || (month == 11 && day <= 22)) "天蝎座"
else if ((month == 11 && day >= 23) || (month == 12 && day <= 21)) "射手座"
else if ((month == 12 && day >= 22) || (month == 1 && day <= 19)) "摩羯座"
else "未知星座"
}
def main(args: Array[String]): Unit = {
// 使用合法格式的测试身份证号(示例:110101200001011234)
val idCard = "110101200001011234"
val gender = getGender(idCard)
val birthday = getBirthday(idCard)
val province = getProvince(idCard)
val zodiac = getZodiac(idCard)
val age = getAge(idCard)
println(s"籍贯:$province")
println(s"性别:$gender")
println(s"年龄:$age")
println(s"生日:$birthday")
println(s"星座:$zodiac")
}
}
}