Swift 字符与字符串

在本章节中,您将学习 Swift 字符和字符串。您还将学习可以对字符串和字符执行的不同操作。


Swift 字符(Character)

字符是一种 数据类型,表示单个字符串("a"、"@"、"5"等)。

我们使用 Character 关键字在 Swift 中创建字符类型变量。例如:

  1. var letter: Character

字符实例

这里,letter 变量只能存储单个字符数据。

  1. // create character variable
  2. var letter: Character = "H"
  3. print(letter) // H
  4. var symbol: Character = "@"
  5. print(symbol) // @

在上面的实例中,我们创建了两个字符变量:lettersymbol。在这里,我们将 "H" 赋值给 letter,将 "@" 赋值给 symbol

注意:如果我们试图为一个字符变量赋值多个字符,将产生错误。

Swift 字符串

在 Swift 中,一个字符串用于存储文本数据("Hey There!", "Swift is awesome.",等等)。

我们使用 String 关键字来创建字符串类型变量。例如:

  1. let name: String

这里,name 变量只能存储文本数据。


字符串实例

  1. // create string type variables
  2. let name: String = "Swift"
  3. print(name)
  4. let message = "I love Swift."
  5. print(message)

结果如下:

  1. Swift
  2. I love Swift.

在上面的实例中,我们创建了字符串类型变量:namemessage,分别具有值 "Swift" 和 "I love Swift"。

注意这一句,

  1. let message = "I love Swift."

这里,我们在创建变量时没有使用 String 关键字。这是因为 Swift 能够根据值推断类型。

注意:在 Swift 中,我们使用双引号表示字符串和字符。

字符串操作

Swift 中的字符串类提供了各种内置函数,让我们可以对字符串执行不同的操作。

1. 比较两个字符串

我们使用 == 运算符来比较两个字符串。如果两个字符串相等,则运算符返回 true。否则,返回 false。例如:

  1. let str1 = "Hello, world!"
  2. let str2 = "I love Swift."
  3. let str3 = "Hello, world!"
  4. // compare str1 and str2
  5. print(str1 == str2)
  6. // compare str1 and str3
  7. print(str1 == str3)

结果如下:

  1. false
  2. true

在上述实例中,

str1str2 不相等。因此,结果为 false

str1str3 相等。因此,结果是 true


2.连接两个字符串

我们使用 append() 函数连接 Swift 中的两个字符串。例如:

  1. var greet = "Hello "
  2. var name = "Jack"
  3. // using the append() method
  4. greet.append(name)
  5. print(greet)

结果如下:

  1. Hello!

在上面的实例中,我们使用 append() 方法连接 namegreet

我们还可以使用 ++= 运算符连接两个字符串。

  1. var greet = "Hello, "
  2. let name = "Jack"
  3. // using + operator
  4. var result = greet + name
  5. print(result)
  6. //using =+ operator
  7. greet += name
  8. print(greet)

结果如下:

  1. Hello, Jack
  2. Hello, Jack

在上面的实例中,我们使用了 ++= 运算符来连接两个字符串:greetname

注意:我们不能使用 let 创建 greet。这是因为 += 运算符将两个字符串连接起来,并将新值赋值给 greet

3. 查询字符串的长度

我们使用 count 属性来查找字符串的长度。例如:

  1. let message = "Hello, World!"
  2. // count length of a string
  3. print(message.count) // 13
注意count 属性统计字符串中包括空格在内的字符总数。

其他内置函数

内置函数描述
isEmpty确定字符串是否为空
capitalized将字符串中每个单词的第一个字母大写
uppercased()将字符串转换为大写
lowercase()将字符串转换为小写
hasPrefix()确定字符串是否以特定字符开头
hasSuffix()确定字符串是否以特定字符结尾

转义字符(转义序列)

转义字符用于转义字符串中的某些字符。

假设我们需要在字符串中包含双引号。

  1. // include double quote
  2. var example = "This is "String" class"
  3. print(example) // throws error

由于字符串用双引号表示,编译器将 "This is " 视为字符串。因此,上述代码将导致错误。

为了解决这个问题,我们在 Swift 中使用转义字符 \

  1. // use the escape character
  2. var example = "This is \"String\" class"
  3. print(example)
  4. // Output: This is "String" class

现在,程序将运行无任何错误。这里,转义字符将告诉编译器忽略 \ 之后的字符。

以下是 Swift 支持的所有转义字符的列表。

转义字符字符
\0null
\普通反斜杠
\t空格
\n换行
\”双引号

字符串插值

我们还可以使用反斜杠字符 \ 在字符串中使用变量和常量。例如:

  1. let name = "Swift"
  2. var message = "This is \(name) programming."
  3. print(message)

结果如下:

  1. This is Swift programming.

在上面的实例中,请注意:

  1. var message = "This is \(name) programming."

这里,我们在字符串消息中使用 name 变量。这个过程在 Swift 中称为字符串插值。


Swift 多行字符串

我们还可以在 Swift 中创建多行字符串。为此,我们使用三重双引号 """。例如,

  1. // multiline string
  2. var str: String = """
  3. Swift is awesome
  4. I love Swift
  5. """
  6. print(str)

结果如下:

  1. Swift is awesome
  2. I love Swift

在上面的实例中,封闭三重引号内的任何内容都是一个多行字符串。

注意:多行字符串必须始终从新行开始。否则,将生成错误。
  1. // error code
  2. var str = """Swift
  3. I love Swift
  4. """

创建字符串实例

我们还可以使用初始值设定项语法创建字符串。例如:

  1. var str = String()

这里,初始化器语法 String() 将创建一个空字符串。