Swift 字符与字符串

Swift 字符

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

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

var letter: Character

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


字符示例

// create character variable
var letter: Character = "H"
print(letter)  // H

var symbol: Character = "@"
print(symbol)  // @ 

在上面的示例中,我们创建了两个字符变量:lettersymbol。我们将 "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.

在上面的示例中,我们创建了字符串类型的变量:namemessage,它们的值分别为 "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

在上面的例子中:

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

2. 连接两个字符串

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

var greet = "Hello "
var name = "Jack"

// using the append() method
greet.append(name)
print(greet)

输出

Hello Jack

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

使用 + 和 += 进行连接

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

var greet = "Hello, "
let name = "Jack"

// using + operator
var result = greet + name
print(result)

//using =+ operator
greet +=  name
print(greet)

输出

Hello, Jack
Hello, Jack

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

注意: 我们不能使用 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() 将创建一个空字符串。

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战