Swiftios开发

2019-01-10 Swift 中String 和 NSStr

2019-01-10  本文已影响0人  Daniel梁

String是swift语言中的字符类型

NSString是Foundation框架下的一个核心处理字符串的类 OC

随着Swift的快速更新 String 和 NSString 的差别越来越小了

首先两者可以通过在值后面加as 进行桥接转换的 

let str : String = "hello, world" as String

let str1 : NSString = str as NSString 

两者不同的是

 String:在操作String的子字符集时候只能使用String.Index 

let startIndex=str.startIndex

let Index=str.index(startIndex, offsetBy:5)

str[startIndex..<endIndex]

此时str 为"hello"

NSString:在操作NSString的子字符集的时候使用 Int整形就可以操作了 比较方便

str1.substring(from:5)

str1.substring(to:5)

编码方式的不同导致了操作的不同,其实用整形来操作 对于中文字符或者某些符号是不好的

要知道的是 NSString是采用ASCII码值编写 而String是使用Unicode 所以NSString对中文和表情符等操作可能不是那么友好

lettest1 :NSString="🤩😏😜"

lettest2 :String="🤩😏😜"

test1.length  //这里是6

test2.characters.count //这里是3 

可见Swift 的unicode编码更加人性化 不会向用户展现底层character更多细节 java也是用unicode编码

注意 在swift中由于是采用unicode编码的 所以一个char可以存储16位数据(16bit = 2字节)所以一个char 存储一个汉字是没有问题的

let c : Character = "梁" 

如果在C想用 char c = '梁' 会报错误Character too large for enclosing character literal type

上一篇下一篇

猜你喜欢

热点阅读