- 字符串的长度
- 字符串的拼接
- 字符串的格式化
- 字符串的子串
- 知道 as 的作用 - 类似于 OC 中的类型转换
在 Swift 中绝大多数的情况下,推荐使用 String类型
- String 是一个结构体,性能更高
- String 目前具有了绝大多数 NSString 的功能
- String 支持直接遍历
- NSString 是一个 OC 对象,性能略差
1 字符串的长度及遍历字符串
func demo1() {
//字符串长度
let str = "hello world你好世界"
//1>返回指定编码的对应的字节数量
// UTF8 的编码(0 ~ 4), 每个汉字是 3 个字节
print(str.lengthOfBytes(using: .utf8))
//2> 字符串长度
print(str.characters.count)
//3> OC 中的方法
let ocStr = str as NSString
print(ocStr.length)
}
func demo() {
//遍历字符串
let str = "你是我的彩虹"
for c in str.characters {
print(c)
}
}
2 字符串拼接及格式化
- 直接在 "" 中使用 (变量名)的方式可以快速拼接字符串
let name = "孙悟空"
let age = 18
let title: String? = "唐僧"
let point = CGPoint(x: 100, y: 200)
// 格式 \() 注意可选项
let str = "\(name) \(age) \(title) \(point)"
print(str)
//格式化
let h = 1
let m = 2
let s = 3
let dateStr = "\(h) \(m) \(s)"
print(dateStr)
let dateStr1 = String(format: "%02d:%02d:%02d",h,m,s)
print(dateStr1)
3 字符串的子串
func demo4() {
//先使用 OC 中的 NSString 作为中转, swift 语法经常变化
let str = "你是我的眼"
let ocStr = str as NSString
let s1 = ocStr.substring(with: NSMakeRange(1, 2))
print(s1)
//开始的位置 startIndex
print(str.startIndex)
// 结束的位置 str.length
print(str.endIndex)
let s2 = str.substring(from: "你是".endIndex)
print(s2)
let s3 = str.substring(from: "啦啦".endIndex)
print(s3)
//去子字符串的范围
guard let range = str.range(of: "你是") else {
print("没有")
return
}
print(range)
print(str.substring(with: range))
}