String和Characters
String 是一个有序的字符集合,例如 “hello,world”,“albatross”。Swift 字符串通过 String 类型来表示,一个字符串的内容可以有多种不同的访问方式,包括 Character(字符值) 类型值的集合。
Swift 的 String 和 Character 类型提供了一个快速的,兼容 Unicode 的方式来处理代码中的文本信息。创建和操作字符串的语法与 C的操作方式相似,轻量并且易读。字符串连接操作只需要简单地通过 + 号将两个字符串相连即可。与 Swift 中其他值一样,能否更改字符串的值,取决于其被定义为常量还是变量。尽管语法简易,但 String 类型是一种快速、现代化的字符串实现。每一个字符串都是由独立编码的 Unicode 字符组成,并提供了用于访问这些字符在不同的Unicode表示的支持。String 也可以用于在常量、变量、字面量和表达式中进行字符串插值,这使得创建用于展示、存储和打印的字符串变得轻松自如。
注意:Swift 的 String 类型与 Foundation NSString 类进行了无缝桥接。如果您利用 Cocoa 或 Cocoa Touch 中的 Foundation 框架进行工作,整个 NSString API 都可以调用您创建的任意 String 类型的值,您额外还可以在任意 API 中使用本章介绍的 String 特性。您也可以在任意要求传入NSString 实例作为参数的 API 中使用 String 类型的值进行替换。更多关于在 Foundation 和 Cocoa 中使用 String 的信息请查看 Using Swift with Cocoa and Objective-C。
字符串字面量
您可以在您的代码中包含一段预定义的字符串值作为字符串字面量。字符串字面量是由双引号包裹着的具有固定顺序的文本字符集。
使用字符串作为常量和变量提供初始值。
let someString = "Some string literal value"
注意:someString 变量通过字符串字面量进行初始化,Swift 因此推断其为 String 类型。
初始化一个空的字符串
//创建一个空的字符串,有两种方式
var emptyString=" "
var anotherEmptyString = String()
//通过字符串的属性 isEmpty 判断字符串是否为空
if emptyString.isEmpty{
print("Nothing to see here")
}
字符串改变(修改字符串)
可以通过var、let 关键字来区别 当前字符串是否能够修改,这个跟object-c的(NSString,NSMutableString)不一样
var variableString = "Horse"
variableString += " and carriage"
print(variableString)
// variableString is now "Horse and carriage"
let constantString = "Highlander"
//constantString += " and another Highlander"//这样是错误的
字符串是值类型
字符串字面量可以包含以下特殊字符:
转移特殊字符 \0 (空字符)、\\(反斜线)、\t (水平制表符)、\n (换行符)、\r (回车符)、\" (双引号)、\' (单引号)。
单字节 Unicode 标量,写成 \xnn,其中 nn 为两位十六进制数。
双字节 Unicode 标量,写成 \unnnn,其中 nnnn 为四位十六进制数。
四字节 Unicode 标量,写成 \Unnnnnnnn,其中 nnnnnnnn 为八位十六进制数。
下面的代码为各种特殊字符的使用示例。
wiseWords 常量包含了两个转移特殊字符 (双括号);dollarSign、blackHeart 和 sparklingHeart 常量演示了三种不同格式的 Unicode 标量:
let wiseWords = "\"我是要成为海贼王的男人\" - 路飞"
// "我是要成为海贼王的男人" - 路飞
let dollarSign = "\x24" // $,Unicode 标量 U+0024 let blackHeart = "\u2665" // ♥,Unicode 标量 U+2665 let sparklingHeart = "\U0001F496" //