一、相同点:
在Swift中,String
保留了大部分的NSString
的API
。
如:
1、判断字符串内容是否以某字符串开始
hasPrefix
2、判断字符串内容谁否以某字符串结尾
hasSuffix
3、将字符串中的字母转成小写字母
lowercased
4、将字符串中的字母转成大写字母
capitalized
5、将字符串分割成数组的
components(separatedBy:)
除了以上这些外,还有一些常规的操作,在Swift中使用String和NSString都是可以的。
二、不同点
- Swift中
String
是值类型,Objective-C中NSString
是引用类型(值类型在传值的时候通过拷贝出不同的实例来传值,改变一个实例的属性等并不会在其他实例上体现;引用类型在传值的时候通过引用,相当于拷贝了指针,不同变量所指向的同一个实例改变里面的属性个等会影响到所有);String
和NSString
的长度比较方法是不一样的,在String
中的是使用count
来计算长度的,在NSString
中是使用length
来计算长度的;
三、使用下标截取字符串
1、结论:
- Objective-C:可以使用下标访问字符串中的字符。
- Swift:不可以使用下标访问字符串中的字符。
2、原因:
- Objective-C:字符串采用的ASCII,不同的字符是用相同数量的内存来存储,因此为了可以确定哪个Character位于特定位置。
- Swift:字符串中采用的是更广泛Unicode,不同的字符可能需要不同数量的内存来存储,因此为了确定哪个Character位于特定位置,您必须从每个Unicode标量的开始或结尾处遍历String。因此,Swift字符串不能用整数值索引。
网友评论