当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Swift Character用法及代码示例


结构

Character

近似于user-perceived 字符的单个扩展字素簇。

声明

@frozen struct Character

概述

Character 类型表示由一个或多个 Unicode 标量值组成的字符,按 Unicode 边界算法分组。通常,Character 实例匹配字符串的读者将感知为单个字符的内容。字符串是Character 实例的集合,因此可见字符的数量通常是计算字符串长度的最自然方法。


let greeting = "Hello! 🐥"
print("Length: \(greeting.count)")
// Prints "Length: 8"

因为字符串中的每个字符都可以由一个或多个 Unicode 标量值组成,所以字符串中的字符数可能与 Unicode 标量值表示的长度或特定二进制表示中字符串的长度不匹配。


print("Unicode scalar value count: \(greeting.unicodeScalars.count)")
// Prints "Unicode scalar value count: 8"


print("UTF-8 representation count: \(greeting.utf8.count)")
// Prints "UTF-8 representation count: 11"

每个 Character 实例都由一个或多个 Unicode 标量值组成,这些值组合在一起作为 extended grapheme cluster 。这些标量值的分组方式由规范的、本地化的或以其他方式定制的 Unicode 分段算法定义。

例如,一个国家/地区的 Unicode 标志字符由对应于该国家/地区的 ISO 3166-1 alpha-2 代码的两个区域指标标量值组成。美国的 alpha-2 代码是 “US”,因此它的标志字符由 Unicode 标量值 "\u{1F1FA}"(地区指示符符号字母 U)和 "\u{1F1F8}"(地区指示符符号字母 S)组成。当在字符串文字中彼此相邻放置时,这两个标量值将组合成单个字素簇,在 Swift 中由 Character 实例表示。


let usFlag: Character = "\u{1F1FA}\u{1F1F8}"
print(usFlag)
// Prints "🇺🇸"

有关此讨论中使用的 Unicode 术语的更多信息,请参阅Unicode.org glossary。特别是,这个讨论提到了 extended grapheme clustersUnicode scalar values

可用版本

iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+

相关用法


注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Character。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。