Swift 中的字串
本教程屬於 Swift 系列
字串是程式設計中最常用的工具之一。
在 Swift 中,可以使用字串文字語法來定義一個字串:
1 | let name = "Roger" |
我們使用雙引號來定義字串。單引號是不合法的字串界定符。
一個字串可以跨越多行,使用三個雙引號:
1 | let description = """ |
你可以使用字串插補 (string interpolation) 在字串中嵌入表達式:
1 | let age = 8 |
使用 +
運算子來連接兩個字串:
1 | var name = "Roger" |
使用 +=
運算子將文字附加到字串:
1 | var name = "Roger" |
或者使用 append(_:)
方法:
1 | var name = "Roger" |
你可以使用 count
屬性來計算字串中的字符數:
1 | let name = "Roger" |
任何字串都附帶了一組有用的方法,例如:
removeFirst()
:刪除第一個字符removeLast()
:刪除最後一個字符lowercased()
:獲取一個新的小寫字串uppercased()
:獲取一個新的大寫字串starts(with:)
:如果字串以特定的子字串開始,則返回 truecontains()
:如果字串包含特定的字符,則返回 true
以及許多其他方法。
當你需要參考字串中的某個項目時,由於 Swift 中的字串是 Unicode 編碼,我們無法像 let name = "Roger"
中的字母 o
使用 name[1]
簡單地引用它。你需要使用索引來處理。
任何字串都提供了起始索引,使用 startIndex
屬性:
1 | let name = "Roger" |
要計算字串中的特定索引,請使用 index(_:offsetBy:)
方法計算:
1 | let name = "Roger" |
索引也可以用於獲取子字串:
1 | let name = "Roger" |
當你從字串中獲取子字串時,其結果的類型是 Substring
,而不是 String
。
1 | let name = "Roger" |
由於內部使用了相同的記憶體結構,子字串更省去記憶體,因此更加高效,但在處理大量字串時需要小心,因為你還是可以進行優化。
字串是集合,可以在迴圈中迭代它們。