String 的定义
String 在 Scala 中是不可变的字符序列,这意味着一旦创建,其内容就不能被修改。 定义格式:
1.双引号: val str = "xxxx"
2.三引号。支持换行。
object stringIid01 {
def main(args: Array[String]): Unit = {
val name = "小花"
val str = s"I like scala, $name"
val content =
"""静夜思
|李白
|床前明月光,
|疑是地上霜。
|举头望明月,
|低头思故乡。
""".stripMargin
println(content)
}
}
String 的常用方法
- 索引访问
- 长度获取
- 子串提取
- 字符串转成数字
object stringIid02 {
def main(args: Array[String]): Unit = {
val str = "hello scala"
// 获取字符串长度
println(str.length)
println(str(9))
println(str.substring(2, 5))
println(str.substring(7, 10))
}
}
身份证号的基本知识
前2位是省市的信息;
后四位是具体的乡镇信息;
接下来8位是生日;
倒数第2位表示性别;
最后一位是校验码;
object stringIid03 {
// 获取性别:奇数→男,偶数→女
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"->"天津", "31"->"上海", "50"->"重庆", "13"->"河北", "14"->"山西", "15"->"内蒙古", "21"->"辽宁", "22"->"吉林", "23"->"黑龙江", "32"->"江苏", "33"->"浙江", "34"->"安徽", "35"->"福建", "36"->"江西", "37"->"山东", "41"->"河南", "42"->"湖北", "43"->"湖南", "44"->"广东", "45"->"广西", "46"->"海南", "51"->"四川", "52"->"贵州", "53"->"云南", "54"->"西藏", "61"->"陕西", "62"->"甘肃", "63"->"青海", "64"->"宁夏", "65"->"新疆", "71"->"台湾", "81"->"香港"
)
map.getOrElse(code, "未知")
}
def main(args: Array[String]): Unit = {
val idCard = "32065200410100885"
val gender = getGender(idCard)
val birthday = "1010"
val age = 21
val province = getProvince(idCard)
val zodiac = "天秤座" // 星座
println("----------------------------------------")
println(s" 籍贯:${province}")
println(s" 性别:${gender}")
println(s" 年龄:${age}")
println(s" 生日:${birthday}")
println(s" 星座:${zodiac}")
println("----------------------------------------")
}
}