简单介绍一下swift的字符串的一些用法:
首先,swift不在使用NSString,二十直接使用String。
String是一个结构体,性能更高,可以直接遍历;
NSString是一个OC对象,性能略差。
看一下代码吧:
字符串的遍历
//MARK: -字符串的遍历
func demo() {
//NSString不支持一下方式遍历
let str: String = "我要飞得更高"
for c in str.characters {
print(c)
}
}
字符串的长度
func demo1() {
let str = "hello world你好"
//1> 返回指定编码的对应字节数量
//UTF8的编码(0~4个),每个汉字是3个字节
print(str.lengthOfBytes(using: .utf8))
//2> 字符串长度-返回字符的个数(推荐使用)
print(str.characters.count)
//3> 使用NSString中转
//OC的写法(CZTableCell *)[tableView dequeue]
//swift中可以使用‘值as类型’类型转换
let ocStr = str as NSString
print(ocStr.length)
}
字符串的拼接
// \(变量/常量)
// *** 拼接字符串需要注意可选项 optional
//NSStringFromCGPoint(point)
func demo2() {
let name = "老王"
let age = 18;
let title:String? = "BOSS"
let point = CGPoint(x: 100, y: 100)
let str = "\(name)\(age)\(title ?? "") \(point)"
print(str)
}
字符串格式化
func demo3() {
let h = 8
let m = 9
let s = 6
let dateStr = "\(h):\(m):\(s)"
print(dateStr)
//使用格式字符串格式化
let dateStr1 = String(format: "%02d:%02d:%02d", h,m,s)
print(dateStr1)
}
字符串的子串
func demo4() {
//建议:一般使用NSString作为中转,因为swift取子串的方法一直在优化
//更容易理解
let str = "我们一起在飞"
//1.NSString
let ocStr = str as NSString
let s1 = ocStr.substring(with: NSMakeRange(2,3))
print(s1)
//String的3.0方法
//偶尔使用很方便,但是复杂的截取不好理解,语法经常变化
//let r = 0..<5
//str.substirng(with: Range<Index)
//Index
//startindex position == 0
print(str.startIndex)
// endindex position == str.length
print(str.endIndex)
let str2 = str.substring(from: "我们".endIndex)
print(str2)
let str3 = str.substring(from: "abc".endIndex)
print(str3)
//取范围子字符串的范围
guard let range = str.range(of: "一起") else {
print("没有找到字符串")
return
}
print(str.substring(with:range))
print(range)
}
总结
以上介绍了一些字符串的使用方法,也比较简单。
网友评论