天天看點

Swift實用小冊03:字元串的使用

在本章中,你将學會字元串的一些常用使用方法。

前言

和​

​Apple​

​​官網或者網上分享的教程類文章不同,我将以實際開發角度講述​

​Swift​

​​語言的一些概念和用法,友善大家更好地學習和掌握​

​Swift​

​語言。

這同時也是對自己學習​

​Swift​

​語言過程的知識整理。

如有錯誤,以你為準。

我們建立一個​

​PlayGround​

​​檔案,命名為​

​SwiftString​

​。

Swift實用小冊03:字元串的使用

字元串字面量

剛看是看到“​

​字面量​

​”這個概念的時候,着實被這個全新的文字組合吓到。

字元串字面量是指使用雙引号​

​“”​

​括起來的的字元序列,例如:

//字元串字面量

let userName = "文如秋雨"      

上述代碼中,​

​"文如秋雨"​

​​這部分就是字元串的​

​字面量​

​​,在​

​Swift​

​​中,字元串的字面量常常用于給常量或者變量​

​指派​

​。

我們的字面量​

​"文如秋雨”​

​​,通過指派運算符​

​“=”​

​​,給​

​let​

​​聲明的常量​

​userName​

​賦予了初始值。

除了雙引号​

​“”​

​​,我們還有用三引号​

​"""​

​​括起來的​

​多行字元字面量​

​,示例:

//多行字元字面量

let oneSentence = """
    遇到困難時,我們要迎難而上,而不是畏畏縮縮。
    找到一個明确的目标,不在乎别人的眼光,努力去做就好了。
"""      

上述代碼中,多行字元字面量用三引号包裹,​

​開頭​

​​一個三引号,​

​結尾​

​一個三引号。

我們可以注意到一個細節,多行字元字面量和标準的字元字面量不同點:

隻要在開始三引号和結束三引号内,字面量可以随意換行。

多行字元字面量的好處是,當我們的字面量特别多的時候,可以有效提高代碼可讀性,​

​優雅​

​​,​

​優雅​

​。

字元串初始化

我們可以直接使用指派運算符給字元串初始化,初始化空的字元除了内容為空外,還可以使用構造的方法建立執行個體,示例:

//空字元串初始化

var string = ""    //空字元串
var emptyString = String()    //空字元串      

上述代碼中,都是定義空字元串的方法,最終的效果是一樣的,看個人使用習慣。

字元串可變性

字元串可變性主要取決于聲明方式。

​let​

​​常量聲明方式隻能定義标準字元串,而且是不可變的。​

​var​

​變量聲明方式定義的字元串,在後續的代碼編寫中是可以變化更新,示例:

//字元串可變性

//1、聲明URL常量
let userUrl = "https://j.cn/user/"

//2、聲明空字元串ID
var indexURL = "3897092103223517"

//3、字元串變化      

上述代碼中,​

​indexURL​

​​最終輸出的結果為。

在這裡我們還使用到了字元串的連接配接方式,通過加号運算符,将兩個字元組合成一個新的字元串。

但如果是多行字元的情況又會有點不同,多行字元是對應順序進行連接配接,示例:

//多行字元連接配接

//第三行是空的
let oneSentence2 = """
    遇到困難時,我們要迎難而上,而不是畏畏縮縮。
    找到一個明确的目标,不在乎别人的眼光,努力去做就好了。

"""

//一行資料
let twoSentence2 = """
    心存感恩,善緣不斷。
"""      

上述代碼中,我們可以看到多行字元連接配接後,​

​twoSentence2​

​​的字面量是連接配接到​

​oneSentence2​

​後面空的那行的。

字元串字元數量

在​

​Swift​

​​中,我們使用​

​.count​

​計算字元的數量,示例:

//字元數量計算

let userName = "文如秋雨"
print("\(userName.count)")      

上述代碼中,字元數量的結果為​

​4​

​。

字元串索引

索引的概念是定位到具體的位置,我們可以通過字元串關聯的索引類型,定位到裡面每個字元的位置。示例:

//字元串索引

let userName = "文如秋雨”

//第一個字元
userName[userName.startIndex]    //輸出“文”

//第二個字元
userName[userName.index(after: userName.startIndex)]    //輸出“如”

//指定輸出第3個字元,索引是0,1,2開始算
let index = userName.index(userName.startIndex, offsetBy: 2)
userName[index]    //輸出“秋”

//索引最後一個字元
userName[userName.index(before: userName.endIndex)]    //輸出“雨”      

在上述代碼中,我們使用​

​startInde​

​獲得開始位置的索引,獲得了第一個字元。

然後,通過​

​index(after:) ​

​的方法,獲得了後一個字元的索引,獲得了第二個字元。

然後,通過​

​index(_:offsetBy:) ​

​方法來擷取對應偏移量的索引,獲得了第三個字元。

最後,我們使用​

​endIndex​

​獲得結束位置的索引,獲得了第四個字元。

字元串插入和删除

在​

​Swift​

​​中,我們可以使用​

​insert(_:at:)​

​​方法在字元串中插入字元,然後使用​

​remove(at:) ​

​方法在字元串中删除字元。示例:

//字元串插入和删除

var userName2 = "文如秋雨"
userName2.insert("!", at: userName2.endIndex)    //輸出“文如秋雨!”
userName2.remove(at: userName2.index(before: userName2.endIndex))    //輸出“!”      

在上述代碼中,我們使用​

​insert​

​​插入的方法在​

​userName2​

​​索引的最後插入一個字元,插入的字元​

​作為​

​最後一個索引的位置。

而​

​remove​

​​删除的方法,則​

​定位​

​​到最後一個字元的位置,删除掉​

​前面​

​​所有字元,就留下了​

​“!”​

​字元。

字元串比較

和上一章使用比較運算符比較數值一樣,字元串也可以直接用來比較是否相同和不同。示例:

//字元串比較

let question1 = "你喜歡我嗎?"
let question2 = "我喜歡你嗎?"

if question1 != question2 {
    print("兩個不一樣的問題")
}      

在上述代碼中,我們使用​

​“!=”​

​​不等于操作符作為判斷,如果兩個字元串的内容不相同,則輸出結果。同理,我們也可以使用​

​“==”​

​等于運算符作為判斷。

Swift實用小冊03:字元串的使用