/**
字符串
Swift 中是 String 类型
结构体
量级更轻
苹果推荐使用
支持直接遍历
OC 是 NSString 类型
继承自 NSObject 的对象
NSString 不支持遍历
*/
func demo() { let name: String = "张三" let age = 18 let center = view.center // 字符串的拼接 \(变量名) 方式 print("\(name) \(age) \(center)") }
// 字符串的遍历
func demo2() { let string = "hello world!" for c in string.characters { print(c) } }
// 字符串的长度
func demo3() { let string = "你好世界Hello" // 一个中文的 UTF 对应3个字节,返回的C语言的字符串长度 print(string.lengthOfBytesUsingEncoding(NSUTF8StringEncoding)) // 返回字符串中的字符数量 - 字符串的长度! print(string.characters.count) }
// 格式化字符串
func demo4() { let h = 8 let m = 5 let s = 6 print("\(h):\(m):\(s)") // 如果需要使用格式字符串的时候,可以单独使用 String(format: xxx) let dateString = String(format: "%02d:%02d:%02d", arguments: [h, m, s]) print(dateString) // 可以直接在格式字符串后面添加 参数,用 逗号分隔 let dateString2 = String(format: "%02d:%02d:%02d", h, m, s) print(dateString2) }
// 字符串的子串,提示:在 Swift 中 String 取子串不是特别好写,建议使用 NSString
func demo5() { let str = "hello world" let s1 = (str as NSString).substringWithRange(NSMakeRange(2, 5)) print(s1) // --- 提示 -- 以下代码仅供参考,Swift语法中,变化最频繁 let s2 = str.substringFromIndex("1234".endIndex) print(s2) // 指定范围 ..< // advancedBy 正数,向右移动,负数向左移动 let startIndex = str.startIndex.advancedBy(2) // 0 let endIndex = str.endIndex.advancedBy(-2) // 11 let range = startIndex..