Swift 字符与字符串
在本章节中,您将学习 Swift 字符和字符串。您还将学习可以对字符串和字符执行的不同操作。
Swift 字符(Character)
字符是一种 数据类型,表示单个字符串("a"、"@"、"5"等)。
我们使用 Character
关键字在 Swift 中创建字符类型变量。例如:
var letter: Character
字符实例
这里,letter
变量只能存储单个字符数据。
// create character variable
var letter: Character = "H"
print(letter) // H
var symbol: Character = "@"
print(symbol) // @
在上面的实例中,我们创建了两个字符变量:letter
和 symbol
。在这里,我们将 "H" 赋值给 letter
,将 "@" 赋值给 symbol
。
Swift 字符串
在 Swift 中,一个字符串用于存储文本数据("Hey There!", "Swift is awesome.",等等)。
我们使用 String
关键字来创建字符串类型变量。例如:
let name: String
这里,name
变量只能存储文本数据。
字符串实例
// create string type variables
let name: String = "Swift"
print(name)
let message = "I love Swift."
print(message)
结果如下:
Swift
I love Swift.
在上面的实例中,我们创建了字符串类型变量:name
和 message
,分别具有值 "Swift" 和 "I love Swift"。
注意这一句,
let message = "I love Swift."
这里,我们在创建变量时没有使用 String
关键字。这是因为 Swift 能够根据值推断类型。
字符串操作
Swift 中的字符串类提供了各种内置函数,让我们可以对字符串执行不同的操作。
1. 比较两个字符串
我们使用 ==
运算符来比较两个字符串。如果两个字符串相等,则运算符返回 true。否则,返回 false。例如:
let str1 = "Hello, world!"
let str2 = "I love Swift."
let str3 = "Hello, world!"
// compare str1 and str2
print(str1 == str2)
// compare str1 and str3
print(str1 == str3)
结果如下:
false
true
在上述实例中,
str1
和 str2
不相等。因此,结果为 false。
str1
和 str3
相等。因此,结果是 true。
2.连接两个字符串
我们使用 append()
函数连接 Swift 中的两个字符串。例如:
var greet = "Hello "
var name = "Jack"
// using the append() method
greet.append(name)
print(greet)
结果如下:
Hello!
在上面的实例中,我们使用 append()
方法连接 name
和 greet
。
我们还可以使用 +
和 +=
运算符连接两个字符串。
var greet = "Hello, "
let name = "Jack"
// using + operator
var result = greet + name
print(result)
//using =+ operator
greet += name
print(greet)
结果如下:
Hello, Jack
Hello, Jack
在上面的实例中,我们使用了 +
和 +=
运算符来连接两个字符串:greet
和 name
。
let
创建 greet
。这是因为 +=
运算符将两个字符串连接起来,并将新值赋值给 greet
。3. 查询字符串的长度
我们使用 count
属性来查找字符串的长度。例如:
let message = "Hello, World!"
// count length of a string
print(message.count) // 13
count
属性统计字符串中包括空格在内的字符总数。其他内置函数
内置函数 | 描述 |
---|---|
isEmpty | 确定字符串是否为空 |
capitalized | 将字符串中每个单词的第一个字母大写 |
uppercased() | 将字符串转换为大写 |
lowercase() | 将字符串转换为小写 |
hasPrefix() | 确定字符串是否以特定字符开头 |
hasSuffix() | 确定字符串是否以特定字符结尾 |
转义字符(转义序列)
转义字符用于转义字符串中的某些字符。
假设我们需要在字符串中包含双引号。
// include double quote
var example = "This is "String" class"
print(example) // throws error
由于字符串用双引号表示,编译器将 "This is " 视为字符串。因此,上述代码将导致错误。
为了解决这个问题,我们在 Swift 中使用转义字符 \
。
// use the escape character
var example = "This is \"String\" class"
print(example)
// Output: This is "String" class
现在,程序将运行无任何错误。这里,转义字符将告诉编译器忽略 \
之后的字符。
以下是 Swift 支持的所有转义字符的列表。
转义字符 | 字符 |
---|---|
\0 | null |
\ | 普通反斜杠 |
\t | 空格 |
\n | 换行 |
\” | 双引号 |
字符串插值
我们还可以使用反斜杠字符 \
在字符串中使用变量和常量。例如:
let name = "Swift"
var message = "This is \(name) programming."
print(message)
结果如下:
This is Swift programming.
在上面的实例中,请注意:
var message = "This is \(name) programming."
这里,我们在字符串消息中使用 name
变量。这个过程在 Swift 中称为字符串插值。
Swift 多行字符串
我们还可以在 Swift 中创建多行字符串。为此,我们使用三重双引号 """
。例如,
// multiline string
var str: String = """
Swift is awesome
I love Swift
"""
print(str)
结果如下:
Swift is awesome
I love Swift
在上面的实例中,封闭三重引号内的任何内容都是一个多行字符串。
// error code
var str = """Swift
I love Swift
"""
创建字符串实例
我们还可以使用初始值设定项语法创建字符串。例如:
var str = String()
这里,初始化器语法 String()
将创建一个空字符串。