在本章中,你将學會字元串的一些常用使用方法。
前言
和
Apple
官網或者網上分享的教程類文章不同,我将以實際開發角度講述
Swift
語言的一些概念和用法,友善大家更好地學習和掌握
Swift
語言。
這同時也是對自己學習
Swift
語言過程的知識整理。
如有錯誤,以你為準。
我們建立一個
PlayGround
檔案,命名為
SwiftString
。
字元串字面量
剛看是看到“
字面量
”這個概念的時候,着實被這個全新的文字組合吓到。
字元串字面量是指使用雙引号
“”
括起來的的字元序列,例如:
//字元串字面量
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("兩個不一樣的問題")
}
在上述代碼中,我們使用
“!=”
不等于操作符作為判斷,如果兩個字元串的内容不相同,則輸出結果。同理,我們也可以使用
“==”
等于運算符作為判斷。