Stringid

43 阅读3分钟
package stringid

object stringid01 {
  def main(args:Array[String]):Unit = {

    val str = "hello scala"
    println(str.length)
    println(str(0))
    println(str.substring(2,5))
    println(str.substring(7,10))
  }

}

拆分身份证的秘密

package stringid

object stringid02 {
  def getGender(idCard:String):String = {
    val g = idCard.substring(16,17).toInt
    if(g % 2 == 1){
      "男"
    }else{
      "女"
    }
  }
  def main(args:Array[String]):Unit = {
    val idCard = "42900520040100083"
    val gender = getGender(idCard)
    val birthday = "10-10"
    val age = 21
    val province = "湖北"
    val zodiac = "天秤座"
    println(s"-------------------")
    println(s"籍贯:${province}")
    println(s"性别:${gender}")
    println(s"年龄:${age}")
    println(s"------------")
  }

}
package stringid

object stringid02 {
  def getGender(idCard:String):String = {
    val g = idCard.substring(16,17).toInt
    if(g % 2 == 1){
      "男"
    }else{
      "女"
    }
  }
 def getProvince(idCard:String):String = {
 val code = idCard.substring(0,2)
   val map = Map("11" -> "北京市", "12" -> "天津市", "13" -> "河北省", "14" -> "山西省", "15" -> "内蒙古自治区", "21" -> "辽宁省", "22" -> "吉林省", "23" -> "黑龙江省", "31" -> "上海市", "32" -> "江苏省", "33" -> "浙江省", "34" -> "安徽省", "35" -> "福建省", "36" -> "江西省", "37" -> "山东省", "41" -> "河南省", "42" -> "湖北省", "43" -> "湖南省", "44" -> "广东省", "45" -> "广西壮族自治区", "46" -> "海南省", "50" -> "重庆市", "51" -> "四川省", "52" -> "贵州省", "53" -> "云南省", "54" -> "西藏自治区", "61" -> "陕西省", "62" -> "甘肃省", "63" -> "青海省", "64" -> "宁夏回族自治区", "65" -> "新疆维吾尔自治区", "81" -> "香港特别行政区", "82" -> "澳门特别行政区", "83" -> "台湾地区")
   map.getOrElse(code,"未知")
 }
  def main(args:Array[String]):Unit = {
    val idCard = "42900520040100083"
    val gender = getGender(idCard)
    val birthday = "10-10"
    val age = 21
    val province = "湖北"
    val zodiac = "天秤座"
    println(s"-------------------")
    println(s"籍贯:${province}")
    println(s"性别:${gender}")
    println(s"年龄:${age}")
    println(s"------------")
  }

}
package stringid
def getBirthday(idCard: String): String = { val month = idCard.substring(10, 12) 
  val day = idCard.substring(12, 14)
  month + "-" + day }
object stringid03 {
  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 <= 21)) "双子座"
    else if ((month == 6 && day >= 22) || (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 = {
  val idCard = "42900520040100083"
  val gender = getGender(idCard)
  val birthday = getBirthday(idCard)
  val age = 21
  val province = "湖北"
  val zodiac = "天秤座"
  println(s"-------------------")
  println(s"籍贯:${province}")
  println(s"性别:${gender}")
  println(s"年龄:${age}")
  println(s"------------")
}

}
package stringid
package stringid

object stringid03 {
  def getInfo(zodiac: String): String = {
    val map = Map(
      "白羊" -> "热情奔放,充满活力,喜欢追求新鲜刺激,但有时冲动易怒,固执己见。",
      "金牛" -> "稳重务实,勤奋踏实,注重物质享受,但有时固执己见,对钱财看得较重。",
      "双子" -> "思维敏捷,沟通能力强,适应力强,但有时喜新厌旧,不够专注。",
      "巨蟹" -> "敏感爱家,家庭观念浓厚,保护意识强,但有时过于情绪化,依赖性强。",
      "狮子" -> "自信热情,有领导能力,待人讲义气,但有时过于傲慢,显得自大。",
      "处女" -> "细腻完美,思路清晰,讲究认真,但有时过于挑剔,吹毛求疵。",
      "天秤" -> "和谐爱美,公正理智,社交能力强,但有时优柔寡断,理想化。",
      "天蝎" -> "神秘坚定,敏锐洞察力强,但有时猜疑心重,多愁善感。",
      "射手" -> "乐观积极,崇尚自由冒险,但有时粗心大意,缺乏耐心。",
      "摩羯" -> "稳重靠谱,有耐心和野心,但有时过于保守功利,缺乏热情。",
      "水瓶" -> "创新独立,理想主义,友善理性,但有时反叛冷漠。",
      "双鱼" -> "浪漫善良,富有同情心,爱心包容,但有时意志薄弱,粗心大意。"
    )
    map.getOrElse(zodiac, "未知")
  }

  def main(args: Array[String]): Unit = {
    val idCard = "140905201504050083"
    val gender = getGender(idCard)
    val birthday = getBirthday(idCard)
    val age = getAge(idCard)
    val province = getProvince(idCard)
    val zodiac = getZodiac(idCard) // 星座
    val info = getInfo(zodiac)
    println(s"----------")
    println(s"性别: ${gender}")
    println(s"年龄: ${age}")
    println(s"生日: ${birthday}")
    println(s"星座: ${zodiac}")
    println(s"性格介绍: ${info}")
    println(s"----------")
  }

}package stringid

object stringid03 {
  def getInfo(zodiac: String): String = {
    val map = Map(
      "白羊" -> "热情奔放,充满活力,喜欢追求新鲜刺激,但有时冲动易怒,固执己见。",
      "金牛" -> "稳重务实,勤奋踏实,注重物质享受,但有时固执己见,对钱财看得较重。",
      "双子" -> "思维敏捷,沟通能力强,适应力强,但有时喜新厌旧,不够专注。",
      "巨蟹" -> "敏感爱家,家庭观念浓厚,保护意识强,但有时过于情绪化,依赖性强。",
      "狮子" -> "自信热情,有领导能力,待人讲义气,但有时过于傲慢,显得自大。",
      "处女" -> "细腻完美,思路清晰,讲究认真,但有时过于挑剔,吹毛求疵。",
      "天秤" -> "和谐爱美,公正理智,社交能力强,但有时优柔寡断,理想化。",
      "天蝎" -> "神秘坚定,敏锐洞察力强,但有时猜疑心重,多愁善感。",
      "射手" -> "乐观积极,崇尚自由冒险,但有时粗心大意,缺乏耐心。",
      "摩羯" -> "稳重靠谱,有耐心和野心,但有时过于保守功利,缺乏热情。",
      "水瓶" -> "创新独立,理想主义,友善理性,但有时反叛冷漠。",
      "双鱼" -> "浪漫善良,富有同情心,爱心包容,但有时意志薄弱,粗心大意。"
    )
    map.getOrElse(zodiac, "未知")
  }

  def main(args: Array[String]): Unit = {
    val idCard = "140905201504050083"
    val gender = getGender(idCard)
    val birthday = getBirthday(idCard)
    val age = getAge(idCard)
    val province = getProvince(idCard)
    val zodiac = getZodiac(idCard) // 星座
    val info = getInfo(zodiac)
    println(s"----------")
    println(s"性别: ${gender}")
    println(s"年龄: ${age}")
    println(s"生日: ${birthday}")
    println(s"星座: ${zodiac}")
    println(s"性格介绍: ${info}")
    println(s"----------")
  }

}