
- 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() 返回字串的反轉。 |