- Swift 教程
- Swift - 首页
- Swift - 概述
- Swift - 环境
- Swift - 基本语法
- Swift - 变量
- Swift - 常量
- Swift - 字面量
- Swift - 注释
- Swift 运算符
- Swift - 运算符
- Swift - 算术运算符
- Swift - 比较运算符
- Swift - 逻辑运算符
- Swift - 赋值运算符
- Swift - 位运算符
- Swift - 其他运算符
- Swift 高级运算符
- Swift - 运算符重载
- Swift - 算术溢出运算符
- Swift - 恒等运算符
- Swift - 范围运算符
- Swift 数据类型
- Swift - 数据类型
- Swift - 整数
- Swift - 浮点数
- Swift - Double
- Swift - 布尔值
- Swift - 字符串
- Swift - 字符
- Swift - 类型别名
- Swift - 可选类型
- Swift - 元组
- Swift - 断言和先决条件
- Swift 控制流
- Swift - 决策制定
- Swift - if 语句
- Swift - if...else if...else 语句
- Swift - if-else 语句
- Swift - 嵌套 if 语句
- Swift - switch 语句
- Swift - 循环
- Swift - for in 循环
- Swift - while 循环
- Swift - repeat...while 循环
- Swift - continue 语句
- Swift - break 语句
- Swift - fall through 语句
- Swift 集合
- Swift - 数组
- Swift - 集合
- Swift - 字典
- Swift 函数
- Swift - 函数
- Swift - 嵌套函数
- Swift - 函数重载
- Swift - 递归
- Swift - 高阶函数
- Swift 闭包
- Swift - 闭包
- Swift - 转义和非转义闭包
- Swift - 自动闭包
- Swift 面向对象
- Swift - 枚举
- Swift - 结构体
- Swift - 类
- Swift - 属性
- Swift - 方法
- Swift - 下标
- Swift - 继承
- Swift - 重写
- Swift - 初始化
- Swift - 析构
- Swift 高级
- Swift - ARC 概述
- Swift - 可选链
- Swift - 错误处理
- Swift - 并发
- Swift - 类型转换
- Swift - 嵌套类型
- Swift - 扩展
- Swift - 协议
- Swift - 泛型
- Swift - 访问控制
- Swift - 函数与方法
- Swift - SwiftyJSON
- Swift - 单例类
- Swift 随机数
- Swift 不透明类型和装箱类型
- Swift 有用资源
- Swift - 在线编译
- Swift - 快速指南
- Swift - 有用资源
- Swift - 讨论
Swift - 字符串
Swift 中的字符串是有序的字符集合,例如“Hello, World!”,它们由 Swift 数据类型 String 表示,而 String 又表示字符值的集合。或者我们可以说,字符串用于表示文本信息。
在 Swift 中创建字符串
在 Swift 中,我们可以通过两种不同的方式创建字符串,要么使用字符串字面量,要么创建 String 类的实例。
语法
以下是字符串的语法:
// Using String literal var str = "Hello" var str : String = "Hello" // Using String class var str = String("Hello")
示例
Swift 程序演示如何创建字符串。
import Foundation // Creating string using String literal var stringA = "Hello, Swift!" print(stringA) // Creating string by specifying String data type var stringB : String = "Hello, Swift!" print(stringB) // Creating string using String instance var stringC = String("Hello, Swift!") print(stringC)
输出
Hello, Swift! Hello, Swift! Hello, Swift!
Swift 中的空字符串
空字符串是不包含任何内容的字符串。它由不包含任何字符的双引号表示。它通常用于在字符串变量动态接收值之前初始化它们。我们可以通过使用空字符串字面量或创建 String 类的实例来创建空字符串。
语法
以下是空字符串的语法:
// Using String literal var str = "" var str : String = "" // Using String class var str = String("")
示例
Swift 程序演示如何创建空字符串。
import Foundation // Creating empty string using String literal var stringA = "" // Creating empty string by specifying String data type var stringB : String = "" // Creating string using String instance var stringC = String("") // Appending values to the empty strings stringA = "Hello" stringB = "Swift" stringC = "Blue" print(stringA) print(stringB) print(stringC)
输出
Hello Swift Blue
使用 isEmpty 属性
我们还可以使用布尔属性isEmpty检查字符串是否为空。如果指定的字符串为空,则它将返回 true。或者如果指定的字符串包含某些字母,则它将返回 false。
示例
Swift 程序检查给定字符串是否为空字符串。
import Foundation // Creating empty string using String literal var stringA = "" if stringA.isEmpty { print( "stringA is empty" ) } else { print( "stringA is not empty" ) } // Creating string let stringB = "Tutorialspoint" if stringB.isEmpty { print( "stringB is empty" ) } else { print( "stringB is not empty" ) }
输出
stringA is empty stringB is not empty
Swift 中的字符串可变性
根据字符串在声明后是否可以更改其值,我们可以将其分为两种类型。
可变字符串:可变字符串是指其值在创建后可以动态更改的字符串。可变字符串使用var关键字创建。
不可变字符串:不可变字符串是指其值在创建后不能更改的字符串,如果我们尝试更改其值,我们将收到错误。如果我们想修改不可变字符串,则必须使用修改后的更改创建一个新字符串。不可变字符串使用 let 关键字创建。
可变字符串示例
Swift 程序创建可变字符串。
import Foundation // stringA can be modified var stringA = "Hello, Swift 4!" stringA += "--Readers--" print(stringA)
输出
Hello, Swift 4!--Readers--
不可变字符串示例
Swift 程序创建不可变字符串。
import Foundation // stringB can not be modified let stringB = String("Hello, Swift 4!") stringB += "--Readers--" print(stringB)
输出
main.swift:5:9: error: left side of mutating operator isn't mutable: 'stringB' is a 'let' constant stringB += "--Readers--" ~~~~~~~ ^ main.swift:4:1: note: change 'let' to 'var' to make it mutable let stringB = String("Hello, Swift 4!") ^~~ var
Swift 中的字符串插值
字符串插值是一种强大而便捷的技术,可以通过在字符串字面量中包含常量、变量、字面量和表达式的值来动态创建新字符串。我们要插入到字符串字面量中的每个项目(变量或常量或表达式)都必须用括号括起来,并在前面加上反斜杠(\)。
语法
以下是字符串插值的语法:
let city = "Delhi" var str = "I love \(city)"
示例
Swift 字符串插值程序。
import Foundation var varA = 20 let constA = 100 var varC : Float = 20.0 // String interpolation var stringA = "\(varA) times \(constA) is equal to \(varC * 100)" print(stringA)
输出
20 times 100 is equal to 2000.0
Swift 中的字符串连接
字符串连接是将两个或多个字符串组合成单个字符串的方法。我们可以使用+ 运算符连接两个字符串或一个字符串和一个字符,或两个字符。
语法
以下是字符串连接的语法:
var str = str1 + str2
示例
Swift 字符串连接程序。
import Foundation let strA = "Hello," let strB = "Learn" let strC = "Swift!" // Concatenating three strings var concatStr = strA + strB + strC print(concatStr)
输出
Hello,LearnSwift!
Swift 中的字符串长度
Swift 字符串没有长度属性,但我们可以使用count属性计算字符串中字符的数量。
示例
Swift 程序计算字符串的长度。
import Foundation let myStr = "Welcome to TutorialsPoint" // Count the length of the string let length = myStr.count print("String length: \(length)")
输出
String length: 25
Swift 中的字符串比较
我们可以使用“== 运算符”比较两个字符串变量或常量。此运算符返回布尔值。如果给定的字符串相等,则它将返回 true。否则,它将返回 false。
示例
Swift 程序检查给定的字符串是否相等。
import Foundation var varA = "Hello, Swift 4!" var varB = "Hello, World!" // Checking whether the given string is equal or not if varA == varB { print( "\(varA) and \(varB) are equal" ) } else { print( "\(varA) and \(varB) are not equal" ) }
输出
Hello, Swift 4! and Hello, World! are not equal
Swift 中的字符串迭代
字符串迭代用于遍历指定字符串的每个字符,并可以对访问的信息执行操作。我们可以使用 for-in 循环遍历给定字符串。
示例
import Foundation var str = "ThisString" for s in str { print(s, terminator: " ") }
输出
T h i s S t r i n g
我们还可以将enumerated()函数与 for-in 循环一起使用以获取字符及其各自的索引。
示例
import Foundation var str = "ThisString" for (index, value) in str.enumerated() { print("\(index) = \(value)") }
输出
0 = T 1 = h 2 = i 3 = s 4 = S 5 = t 6 = r 7 = i 8 = n 9 = g
Swift 中的 Unicode 字符串
Unicode 是表示不同书写系统中文本的标准方法。或者我们可以说,它用于表示各种字符和符号。以下是 Unicode 的一些要点:
字符表示 - 字符串中存在的所有字符都具有 Unicode 标量值。它是一个 21 位唯一数字,表示一个字符。来自各种语言的所有类型的字符和符号都具有 Unicode 标量值。
扩展图文集群 - 扩展图文集群用于表示人类可读的字符。它可以是一个或多个表示单个字符的 Unicode 标量的集合。
Unicode 标量 - 通过 Unicode 标量属性,我们可以轻松访问给定字符的 Unicode 标量值。
使用 Unicode 进行字符串比较 - 在比较两个字符串时,Swift 会自动执行符合 Unicode 的比较。它确保根据字符串的语言含义而不是其二进制值进行比较。
示例
Swift 程序通过迭代其utf8和utf16属性来访问字符串的UTF-8和UTF-16表示,如下例所示:
import Foundation var unicodeString = "Dog‼🐶" print("UTF-8 Codes: ") for code in unicodeString.utf8 { print("\(code) ") } print("\n") print("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 中的字符串函数和运算符
Swift 支持各种与字符串相关的函数和运算符:
序号 | 函数/运算符和用途 |
---|---|
1 |
isEmpty 一个布尔值,用于确定字符串是否为空。 |
2 |
hasPrefix(prefix: String) 函数检查给定参数字符串是否作为字符串的前缀存在。 |
3 |
hasSuffix(suffix: String) 函数检查给定参数字符串是否作为字符串的前缀存在。 |
4 |
toInt() 函数将数字字符串值转换为整数。 |
5 |
count() 全局函数计算字符串中字符的数量。 |
6 |
utf8 属性返回字符串的 UTF-8 表示形式。 |
7 |
utf16 属性返回字符串的 UTF-16 表示形式。 |
8 |
unicodeScalars 属性返回字符串的 Unicode 标量表示形式。 |
9 |
+ 运算符连接两个字符串,或一个字符串和一个字符,或两个字符。 |
10 |
+= 运算符将字符串或字符附加到现有字符串。 |
11 |
== 运算符确定两个字符串是否相等。 |
12 |
< 运算符执行词法比较以确定一个字符串是否小于另一个字符串。 |
13 |
== 运算符确定两个字符串是否相等。 |
14 |
startIndex 获取字符串起始索引处的值。 |
15 |
endIndex 获取字符串结束索引处的值。 |
16 |
Indices 逐个访问索引。即字符串的所有字符一个接一个。 |
17 |
insert("Value", at: position) 在指定位置插入值。 |
18 |
remove(at: position) removeSubrange(range) 删除指定位置的值,或从字符串中删除一系列值。 |
19 |
reversed() 返回字符串的反转。 |