Swift字符串
Swift 字符串是字符有序集合,如“Hello, World!”,它们是由 Swift 的 String 数据类型表示,这也代表字符类型值的集合。
创建字符串
可以通过使用一个字符串文字或创建String类的一个实例来创建一个字符串,如下:
import Cocoa // String creation using String literal var stringA = "Hello, Swift!" println( stringA ) // String creation using String instance var stringB = String("Hello, Swift!") println( stringB )
当上述代码被编译和执行时,它产生了以下结果:
Hello, Swift! Hello, Swift!
空字符串
可以通过使用一个空字符串或创建 String 类的一个实例来创建一个空的字符串,如下所示。还可以检查一个字符串是否为空,使用布尔属性 isEmpty。
import Cocoa // Empty string creation using String literal var stringA = "" if stringA.isEmpty { println( "stringA is empty" ) } else { println( "stringA is not empty" ) } // Empty string creation using String instance let stringB = String() if stringB.isEmpty { println( "stringB is empty" ) } else { println( "stringB is not empty" ) }
当上述代码被编译和执行时,它产生了以下结果:
stringA is empty stringB is empty
字符串常量
可以指定字符串是否可以修改(或突变),通过将其分配给一个变量,或者通过将其使用 let 关键字分配为常量,如下图所示:
import Cocoa // stringA can be modified var stringA = "Hello, Swift!" stringA + = "--Readers--" println( stringA ) // stringB can not be modified let stringB = String("Hello, Swift!") stringB + = "--Readers--" println( stringB )
当上述代码被编译和执行时,它产生了以下结果:
Playground execution failed: error: <EXPR>:10:1: error: 'String' is not convertible to '@lvalue UInt8' stringB + = "--Readers--"
字符串插值
字串转换符号是一种通过包括字符串文字内的值来构造的常量,变量,文本和表达式来组合一个新的字符串值。
每个项目(变量或常量),插入到字符串被包裹在一对括号内, 一个反斜杠前缀。下面是简单的例子:
import Cocoa var varA = 20 let constA = 100 var varC:Float = 20.0 var stringA = "\(varA) times \(constA) is equal to \(varC * 100)" println( stringA )
当上述代码被编译和执行时,它产生了以下结果:
20 times 100 is equal to 2000.0
字符串连接
可以使用+运算符来连接两个字符串或字符串和字符,或两个字符。下面是一个简单的例子:
import Cocoa let constA = "Hello," let constB = "World!" var stringA = constA + constB println( stringA )
当上述代码被编译和执行时,它产生了以下结果:
Hello,World!
字符串长度
Swift 中字符串没有 length 属性,但可以使用全局count()函数来计算字符串中的字符数。下面是一个简单的例子:
import Cocoa var varA = "Hello, Swift!" println( "\(varA), length is \(count(varA))" )
当上述代码被编译和执行时,它产生了以下结果:
Hello, Swift!, length is 13
字符串比较
可以使用 == 操作符两个比较两个字符串变量或常量。下面是一个简单的例子:
import Cocoa var varA = "Hello, Swift!" var varB = "Hello, World!" if varA == varB { println( "\(varA) and \(varB) are equal" ) } else { println( "\(varA) and \(varB) are not equal" ) }
当上述代码被编译和执行时,它产生了以下结果:
Hello, Swift! and Hello, World! are not equal
Unicode字符串
可以通过遍历在 UTF8 和 UTF16 属性访问字符串的 UTF-8 和 UTF-16 表示,如下面的示例:
import Cocoa var unicodeString = "Dog‼" println("UTF-8 Codes: ") for code in unicodeString.utf8 { print("\(code) ") } print("\n") println("UTF-16 Codes: ") for code in unicodeString.utf16 { print("\(code) ") }
当上述代码被编译和执行时,它产生了以下结果:
UTF-8 Codes: 68 111 103 226 128 188 240 159 144 182 UTF-16 Codes: 68 111 103 8252 55357 56374
字符串函数和操作符
Swift 支持多种方法,和运算符相关的字符串:
S.No | 函数/操作符及用途 |
---|---|
1 |
isEmpty 返回一个布尔值,确定该字符串是否为空 |
2 |
hasPrefix(prefix: String) 函数检查给定的参数字符串是否以 string 为前缀 |
3 |
hasSuffix(suffix: String) 函数检查给定的参数字符串是否以 string 为后缀 |
4 |
toInt() 函数将数字字符串值转换成整数 |
5 |
count() 全局函数用来计算字符串中的字符数 |
6 |
utf8 属性返回一个字符串的 UTF-8 表示 |
7 |
utf16 属性返回一个字符串的 UTF-16 表示 |
8 |
unicodeScalars 属性返回一个字符串的 Unicode 标表示 |
9 |
+ 运算符用来连接两个字符串,或者一个字符串和一个字符或两个字符 |
10 |
+= 操作符要追加一个字符串或字符到一个现有的字符串 |
11 |
== 操作符以确定两个字符串是否相等 |
12 |
< 操作符进行逐一比较,计算以确定一个字符串是否为小于另一个 |
13 |
== 操作符以确定两个字符串是否相等 |