前言
Swift中的字符串相对OC中的字符串来说,发生了很大的变化, Swift变得更加简洁,效率或者性能都变得很高.下面我们仍然通过一张图片来简述我们该如何学习Swift中的字符串
- OC与Swift中的字符串间的区别
首先对比一下OC与swift字符串的不同
OC :NSString *str = @"William";
Swift :let str: String = "William"
阶段性总结:
1, OC中的字符串是NSString类型, 而Swift中的字符串是String类型
2, OC中的字符串是一个对象,是继承与NSObject的,但是swift中的字符串是一个结构体
3, swift中的字符串的性能是要比OC中的字符串要高
4, let 修饰的就是不可变的字符串, var修饰的就是可变字符串
- 定义字符串
// 字符串的定义
let str: String = "William" 或
let str1 = "Alex"
- 遍历字符串
- swift中是可以直接遍历字符串的,所以相对OC来说效率更高,性能更好
// 遍历字符串(支持直接遍历)
var str2 = "我是一个很可耐的小姑凉"
for c in str2.characters {
print(c)
}
- 字符串的拼接
// 字符串的拼接以及格式化
var str4 = "Wiiliam "
var str5 = "Alex"
// 方式一:
str4 += str5
// 方式二:
print("\(str4) \(str5)")
总结: swift中的字符串拼接比OC中的要简单直接的多, 小伙伴们再也不用使用stringWithFormat了
直接在""里面使用(变量名)即可, 当然可以直接向方式一那样相加
- 格式化字符串
// eg: 要求拼接出 19:16:18(19点16分18秒)
var str6 = String(format: "%02d:%02d:%02d", arguments: [19,16,18])
print(str6)
- 字符串的截取
- swift中的字符串截取,非常繁琐,一般都是先转为OC字符串,然后在做截取操作.
// Swift中字符串截取(一般不使用这种方式)
let str: String = "德玛西亚万岁"
var subStr = str.substringWithRange(Range<String.Index>(start: str.startIndex, end: str.endIndex))
print(subStr)
// 推荐写法,先将String转为NSString再截取
let str7: String = "我是不是很傻,为什么不转为OC字符串呢?"
// 将String 转为NSString的方式
//目标:截取出"是不是很傻"
//Swift中截取字符串的方法, 接收的参数和OC中不一样
//前期, 为了大家开发方便, 建议转换为NSString之后再截取
// 方式一:
let str8 = str7 as NSString
str8.substringFromIndex(1)
str8.substringToIndex(6)
// 方式二:
let str9: NSString = str7
str8.substringFromIndex(1)
str8.substringToIndex(6)
// 方式三:
var subStr = (str7 as NSString).substringWithRange(NSMakeRange(1, 5))
print(subStr)
总结 : 关于字符串的截取, 推荐是将swift中的字符串(String)转换为OC重的字符串(NSString),再进行截取操作,原因是swift中的截取操作太TM的复杂了, 用起来真的很蛋疼,所以推荐先转为OC字符串