-字符串
Swift String,是一个结构体,量级更轻,效率略高,推荐使用
可以支持遍历
OC NSString,是继承自 NSObject 的对象
/// 遍历字符串
func demo() {
// String
let string: String = "飞的更高"
// 遍历字符串
for c in string.characters {
print(c)
}
}
}
/// 字符串拼接
func demo2() {
let name = "zhangsan"
let age = 18
let point = self.view.center
// 格式 "\(变量/常量名)"
// 告别了 -> NSStringStringWithCGPoint
print("\(name) ~~~ \(age) \(point)")
}
/// 长度
func demo3() {
let name = "hello world你好世界"
// 将字符串转换成对应编码 UTF8 字节的长度
// 一个中文对应的 UTF8 编码占 3 个字节
// UTF8 的字符,占用字节数为 1~4 个
print(name.lengthOfBytesUsingEncoding(NSUTF8StringEncoding))
// 获得字符串中字符的个数
print(name.characters.count)
// as 是类型转换 => OC (CZDemoCell *)UITableViewCell
let ocName = name as NSString
print(ocName.length)
}
/// 子串 - 方便的方法,转换成 NSString
func demo5() {
let str = "我们一起去飞"
// 1. 方法1,使用 NSString
let subStr1 = (str as NSString).substringWithRange(NSMakeRange(2, 4))
print(subStr1)
2. 方法2,Swift的语法
startIndex 是字符串的起始索引位置 -> 0
endIndex 是字符串的结束的索引位置 -> count
advancedBy 是将索引递进的函数
n > 0 向右递进 n 个字符
n < 0 向左递进 n 个字符
let subStr2 = str.substringFromIndex(str.startIndex.advancedBy(2))
print(subStr2)
// can not increment endIndex,不允许递增 endIndex,会出现越界
let subStr3 = str.substringToIndex(str.endIndex.advancedBy(-2))
print(subStr3)
// 从 Xcode 7 beta 5 开始就固定了格式了
let startIndex = str.startIndex //.advancedBy(2)
let endIndex = str.endIndex //.advancedBy(-2)
print(startIndex)
print(endIndex)
// 提示如果 范围越界,会崩溃
let subStr4 = str.substringWithRange(startIndex..<endIndex)
print(subStr4)
}