/**
字符串
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..<endIndex
let s3 = str.substringWithRange(range)
print(s3)
}