练习2

34 阅读2分钟

字符串

  • 1.理论
  • 两种定义格式 (1) 双引号 (2)双引号,支持换行
  • (1)获取指定下标上的字符
  • (2)获取字符串的长度,length属性,空格也是字符
  • (3)获取子串,只需要一个长字符串中的一部分
package string
/*
* 字符串
* 1.理论
*   两种定义格式 (1) 双引号 (2)双引号,支持换行
*  (1)获取指定下标上的字符
*  (2)获取字符串的长度,length属性,空格也是字符
*  (3)获取子串,只需要一个长字符串中的一部分
*
*
*/


object string01 {
  def main(args: Array[String]): Unit = {
    val str1:String="hello scala"


   println(str1(0))
   println(str1.length)

    //str1.substring(起点下标,终点下标-不包含)
    val str2=str1.substring(1,5)//ello
    println(str2)

    
  }

image.png

package string

import java.time.LocalDate
import java.time.chrono.IsoChronology

/*
* 字符串
* 1.理论
*   两种定义格式 (1) 双引号 (2)双引号,支持换行
*  (1)获取指定下标上的字符
*  (2)获取字符串的长度,length属性,空格也是字符
*  (3)获取子串,只需要一个长字符串中的一部分
* 2.应用:从身份证号中,解析出基本信息
*   示例:42900519840622   00  51
*
*  (1)省份:42 湖北,43  湖南,11 北京......
*  (2)市区,乡镇  9005
*  (3)出生年份:1984
*  (4)出生日期:0622
*  (5)顺序码:00
*  (6)倒数第二位 5,奇数表示性别:男   偶数:女
*  (7)最后一位,是校验码,验码这个身份证号是不是瞎编的!!!
*
*/


object string02 {
  def getGender(idCard:String):String={
    val gender=idCard.substring(16,17).toInt
    if(gender %2 ==0)
      "女"
     else
       "男"

  }
  def getBirthday(idCard:String):String={
    val year=idCard.substring(6,10)
    val month=idCard.substring(10,12)
    val day=idCard.substring(12,14)
    year+"-"+month+"-"+day
  }
  def getAge(idCard: String):Int={
    val year=idCard.substring(6,10).toInt
    //获取当前年份
    val currentYear=LocalDate.now().getYear
    currentYear-year

  }
  def getProvince(idCard:String):String={
    val procode=idCard.substring(0,2)
    //42 -->湖北省
    val provinceMap=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" -> "新疆维吾尔自治区"
    )
    provinceMap.getOrElse(procode,"未知")
  }

  //水瓶座 1/10 ~ 2/
  




  def main(args: Array[String]): Unit = {
    val idCard="429005202010100026"
    val gender=getGender(idCard)
    val birthday=getBirthday(idCard)

    val age=getAge(idCard)
    val province=getProvince(idCard)
    println(s"""
    性别:${gender}
    生日:${birthday}
    籍贯: ${province}
    年龄:${age}
    星座:xx座
    """)

  }


}