- 在Swift 中,字符串的类型是
String
- 其本身类型是一个结构体,比NSString更加轻量级,速度更快
- 支持直接遍历
- Swift 中的String 可以与 OC 中的 NSString 无缝转换:let str:string = str as NSString
字符串常用操作
let str = "hello swift!"
for c in str.characters{
print(c)
}
let str = "别低头,绿帽会掉"
//返回以字节为单位的字符串长度,一个中占3个字节
print(str.lengthofBytesUsingEncoding(NSUTF8StringEncoding))
//返回实际字符个数
print(str.characters.count)
//返回UTF8编码长度
print(str.utf8.count)
- 字符串拼接
- 直接在
""
中使用\(变量名)
的方式可以快速拼接字符串
let str1 = "hello"
let str2 = "World"
let i = 32
let str = "\(i)" + str1 + " " + str2
- 可选项的拼接
- 如果变量是可选项, 拼接的结果中会有
optional
- 为了应对强行解包存在的风险,我们可以使用
??
操作符
let str1 = "hello"
let str2 = "World"
let i:Int? = 32
let str = "\(i??0)个" + str1 + " " + str2
- 格式化字符串
- 在实际开发中,如果需要指定字符串格式,可以使用
String(format:...)
的方式
- 类似于OC中的
stringWithFormat
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)
let str ="听说下雨天音乐和辣条更配哟"
//fromIndex 是从指定位置开始截取 直到末尾
//打印结果:下雨天音乐和辣条更配哟
let result1 = str.substringFromIndex("哈哈".endIndex)
print(result1)
//toIndex 从开始截取直接截取到指定位置
//打印结果:听说下雨天音乐和辣条更
let result2 = str.substringToIndex(str.endIndex.advancedBy(-2))
print(result2)
//withRange:截取指定范围
//打印结果:下雨天音乐和辣条更
let startIndex = "哈哈".endIndex
let endIndex = str.endIndex.advancedBy(-2)
let result3 = str.substringWithRange(startIndex..<endIndex)
print(result3)
//如果不习惯Swift写法,也可以直接将String转换成NSString 使用
//打印结果:听说
let ocStr = str as NSString
print(ocStr.substringWithRange(NSMakeRange(0, 2)))
网友评论