Swift 获取字符串长度的理解(2018-01-10)

Swift 获取字符串长度

  • 字符串的长度获取,可以从以下几种情况理解
    • 字符长度(语义理解的长度)
    • 不同字符编码的长度
      • 字符串unicode长度
      • 字符串utf16长度
      • 字符串utf32长度(和unicode相等)
      • 字符串UTF-8长度
  • 语义字符长度

      let cafe = "Cafe\u{301} du "  
      print(cafe)
      // Prints "Café du "  
      print(cafe.count)
      // Prints "9"
      print(Array(cafe))
      // Prints "["C", "a", "f", "é", " ", "d", "u", " ", ""]"
    
    • 不同字符编码的长度
      - unicode字符长度

              print(cafe.utf16.count)
              // Prints "11"
              print(Array(cafe.utf16))
              // Prints "[67, 97, 102, 101, 769, 32, 100, 117, 32, 55356, 57101]"
      - utf16字符长度
      
              let nscafe = cafe as NSString
              print(nscafe.length)
              // Prints "11"
              print(nscafe.character(at: 3))
              // Prints "101"
      - UTF-8字符长度
      
              print(cafe.utf8.count)
              // Prints "14"
              print(Array(cafe.utf8))
              // Prints "[67, 97, 102, 101, 204, 129, 32, 100, 117, 32, 240, 159, 140, 141]"
      
  • How to measuring the Length of a String

    • sample1:

        let capitalA = "A"
        print(capitalA.count)
        // Prints "1"
        print(capitalA.unicodeScalars.count)
        // Prints "1"
        print(capitalA.utf16.count)
        // Prints "1"
        print(capitalA.utf8.count)
        // Prints "1"
      
    • sample2:

        let flag = ""
        print(flag.count)
        // Prints "1"
        print(flag.unicodeScalars.count)
        // Prints "2"
        print(flag.utf16.count)
        // Prints "4"
        print(flag.utf8.count)
        // Prints "8"

你可能感兴趣的:(Swift 获取字符串长度的理解(2018-01-10))