scala中的字符串-身份证中的秘密1

25 阅读1分钟

String 在 Scala 中是不可变的字符序列,这意味着一旦创建,其内容就不能被修改。 字符串:

  • 格式1: 双引号
  • 格式2: 三引号: 支持换行。
package string

/*
 * 字符串:
 * 格式1: 双引号
 * 格式2: 三引号: 支持换行。
 */
object string02 {
  def main(args: Array[String]): Unit = {
    val str1 = " 静夜思 李白 4290015055440023x"
    val str2 =
      """ 静夜思
 李白
    """
    println(str1)
    println(str2)
  }
}
package string

/*
字符串操作:
常见操作
1. 提取单个字符
2. 字符串的长度, 空格也是有效的字符, 它也会占长度
3. 字符串的截取: 从当前字符串中, 截取一段出来 substring(包含下标, 终点下标, 不包含)
 */
object string02 {
  def main(args: Array[String]): Unit = {
    val str1 = "hello scala"
    // 字符串(下标), 下标从0开始。
    println(str1(0))
    println("字符串的长度是: " + str1.length)

    // 把 ello 这四个字符取出来
    val str2 = str1.substring(1,5)
    println(str2)

    // 把 cal 这三个字符取出来?
  }
}
package string

// 任务: 从键盘输入一个身份证号。
// 写程序, 推理信息
object string03 {
  def main(args: Array[String]): Unit = {
    //while(true) {
    //val str = scala.io.StdIn.readLine("请输入你要判断的身份证号: ")
    val str = "429019200005201111"
    // 判断是否是18位
    if (str.length == 18) {
      // 取出倒数第二位
      val genderStr = str.substring(16,17).toInt
      val gender = genderStr
      println(gender)
      // 判断性别
      if (gender % 2 == 1) {
        // 男性
        println("这是一个男生")
      } else {
        println("这是女生")
      }
    } else {
      println(s"$str 不是一个合法的身份证号, 长度不对")
    }
    //}
  }
}