四.swift - string

来源:互联网 发布:js添加tr td 编辑:程序博客网 时间:2024/05/18 00:09

四.字符串

在 Swift 中绝大多数的情况下,推荐使用 String 类型

  • String 是一个结构体,性能更高
    • String 目前具有了绝大多数 NSString 的功能
    • String 支持直接遍历
  • NSString 是一个 OC 对象,性能略差
  • Swift 提供了 String 和 NSString 之间的无缝转换

   字符串演练

  • 遍历字符串中的字符
for s in str.characters {
    print(s)
}
  • 字符串长度
// 返回以字节为单位的字符串长度,一个中文占 3 个字节
let len1 = str.lengthOfBytesUsingEncoding(NSUTF8StringEncoding)
// 返回实际字符的个数
let len2 = str.characters.count
// 返回 utf8 编码长度
let len3 = str.utf8.count
  • 字符串拼接
    • 直接在 "" 中使用 \(变量名) 的方式可以快速拼接字符串
    • 对字符串更多的进行拼接
let str1 = "Hello"
let str2 = "World"
let i = 32
str = "\(i) 个 " + str1 + " " + str2

我和我的小伙伴再也不要考虑 stringWithFormat 了 :D

  • 可选项的拼接
    • 如果变量是可选项,拼接的结果中会有 Optional
    • 为了应对强行解包存在的风险,苹果提供了 ?? 操作符
    • ?? 操作符用于检测可选项是否为 nil
      • 如果不是 nil,使用当前值
      • 如果是 nil,使用后面的值替代
let str1 = "Hello"let str2 = "World"let i: Int? = 32str = "\(i ?? 0) 个 " + str1 + " " + str2
  • 格式化字符串
    • 在实际开发中,如果需要指定字符串格式,可以使用 String(format:...) 的方式
let h = 8
let m = 23
let s = 9
let timeString = String(format: "%02d:%02d:%02d", arguments: [h, m, s])
let timeStr = String(format: "%02d:%02d:%02d", h, m, s)

  •  String & Range 的结合
 NSStringString的转换
        // 便是 截取出来
        // OC里的截取方法-- 通过 (str2 as NSString)Swift中的String转换成了NSString,就可以调用OC里的方法了
        let subStr = (str2 as NSString).substringWithRange(NSMakeRange(4, 1))
       
print(subStr)
       

        // 再来说swift中的截取
        // "你好你好"只是作为一个占位符
       
        let startIndex = "你好你好".endIndex
        let endIndex = "你若安好便是".endIndex
       
// 你若安好便是晴天
        let swiftSubString = str2.substringWithRange(startIndex..<endIndex)
       

        print(swiftSubString)
0 0
原创粉丝点击