第七章:字符串(String)
注:下面关于characters的介绍在swift 3.2以后废弃了。String可直接使用characters 的方法。
7.1 不再固定宽度
这一节主要是讲字符串String底层的东西
我们先明白几个知识点:
知识点1:swift中String 是一个结构体 我们主要使用String.Characters, 它是Character
的集合,有着类似Array的特性。
知识点2:Unicode拥有可变长度
的特性 :原因是不同语言的字符存放字节数不同,若都统一长度,效率太低
字符串的展示Demo
关于é
我们可以用两种Unicode
的方式表示字符é
strA.utf8.elementsEqual(strB.utf8)//false
注: 只比较编码单元的最大好处是:效率高很多
。
具体的数据比较这里没有做。 不过书上在快很多后面打了个感叹号。那应该的确是快很多。😄
字符蔟(cu四声。。)和标准等价 grapheme cluster and canonically equivalent
知识点3: 字符蔟: Character 中的编码点
组合在一起可以组成单个字符蔟(这个就比较偏字符生成的底层了 大概有个印象就行, 以后有需要了可以看看相关文章)
苹果官方Characters and Grapheme Clusters 文档
知识点4:标准等价: 在上面的Demo中。不管是何种方式生成的é,只看两个都是显示为é, 在 Unicode的规范中把这个就叫做“标准等价
”
知识点5: 做国际化
的同学们。OC字符串的比较更推荐用compare方法, isEqual方法用上面的不同生成方法比较就会得到false的结果。
demo如下。
image.png
网友评论