【发布时间】:2017-06-08 13:03:53
【问题描述】:
我有一个字符串“hi @????”。如果我检查这个字符串的长度,它是 6。如果我写 string.characters[5] 得到数组索引超出界限异常。为什么?怎么提取??? .?
检查我使用 string.utf16.count 的长度。
【问题讨论】:
-
表情符号在索引 4 处。
-
为什么会出现异常?长度为 6。我试图让角色处于特定位置。
-
笑脸在字符串中占据 2 个位置(这就是计数为 6 的原因),但使用了 1 个字符,这就是它位于第 4 位的原因。如果您观看有关什么的 WWDC 2017 视频Swift 中的新功能,他们涵盖了这一点。您还可以在此处阅读更多相关信息:developer.apple.com/library/content/documentation/Swift/…
-
Emoji 在 Swift 中算作单个字符,但算作两个 UTF-16 代码单元。因此
string.utf16.count不同于string.characters.count