Swift 字符
字符是 数据类型,它表示一个单字符字符串(如 "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
。
注意: 如果我们尝试将多个字符赋给 Character
变量,将会得到一个错误。
// create character variable
let test: Character = "H@"
print(test)
// Error:
// cannot convert value of type 'String' to specified type Character
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 中,我们使用双引号来表示字符串和字符。
字符串操作
Swift 中的 String
类提供了各种内置函数,允许我们对字符串执行不同的操作。
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 Jack
在上面的示例中,我们使用了 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() |
将字符串转换为大写 |
lowercased() |
将字符串转换为小写 |
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."
在这里,我们在字符串 message
中使用了 name
变量。这个过程在 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()
将创建一个空字符串。