String

12 阅读2分钟

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.最后一位,是校验码。验证这个身份证是瞎编的!!!!

package string

import java.time.LocalDate

/*
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 main(args: Array[String]): Unit = {
    val idCard = "123456789011"
    val gender = getGender(idCard)
    val birthday = getBirthday(idCard)

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

}