String
是例如"hello,world","海贼王"这样的有序的Character
(字符)类型的值的集合,通过String
类型来表示。
Swift 的String
和Character
类型提供了一个快速的,兼容 Unicode 的方式来处理代码中的文本信息。创建和操作字符串的语法与 C 语言中字符串操作相似,轻量并且易读。字符串连接操作只需要简单地通过+
号将两个字符串相连即可。与 Swift 中其他值一样,能否更改字符串的值,取决于其被定义为常量还是变量。
尽管语法简易,但String
类型是一种快速、现代化的字符串实现。每一个字符串都是由独立编码的 Unicode 字符组成,并提供了以不同 Unicode 表示(representations)来访问这些字符的支持。
Swift 可以在常量、变量、字面量和表达式中进行字符串插值操作,可以轻松创建用于展示、存储和打印的自定义字符串。
注意:
Swift 的String
类型与 FoundationNSString
类进行了无缝桥接。如果您利用 Cocoa 或 Cocoa Touch 中的 Foundation 框架进行工作。所有NSString
API 都可以调用您创建的任意String
类型的值。除此之外,还可以使用本章介绍的String
特性。您也可以在任意要求传入NSString
实例作为参数的 API 中使用String
类型的值作为替代。更多关于在 Foundation 和 Cocoa 中使用String
的信息请查看 Using Swift with Cocoa and Objective-C。
字符串字面量(String Literals)
您可以在您的代码中包含一段预定义的字符串值作为字符串字面量。字符串字面量是由双引号 ("") 包裹着的具有固定顺序的文本字符集。
字符串字面量可以用于为常量和变量提供初始值。
let someString = "Some string literal value"
注意:
someString
常量通过字符串字面量进行初始化,Swift 因此推断该常量为String
类型。
字符串字面量可以包含以下特殊字符:
- 转义字符
\0
(空字符)、\\
(反斜线)、\t
(水平制表符)、\n
(换行符)、\r
(回车符)、\"
(双引号)、\'
(单引号)。 - Unicode 标量,写成
\u{n}
(u为小写),其中n
为任意的一到八位十六进制数。
下面的代码为各种特殊字符的使用示例。wiseWords
常量包含了两个转移特殊字符 (双括号);dollarSign
、blackHeart
和sparklingHeart
常量演示了三种不同格式的 Unicode 标量:
let wiseWords = "\"我是要成为海贼王的男人\" - 路飞"
// "我是要成为海贼王的男人" - 路飞
let dollarSign = "\u{24}" // $,Unicode 标量 U+0024
let blackHeart = "\u{2665}" // ♥,Unicode 标量 U+2665
let sparklingHeart = "\u{1F496}" //