字符串字面量
let someString = "some string"
初始化空字符串
var emptyString = ""
var anotherEmptyString = String()
可以通過檢查其bool類型的isEmpty屬性來判斷字符串是否爲空: if emptyString.isEmpty{
print("empty")
}
字符串可變性
var variableString = "Horse"
variableString += "and carriage"
使用字符
for character in "Dog!?".characters {
print(character)
}
通過標明一個Character類型並用字符字面量進行賦值,可以建立一個獨立的字符串常量或者變量:
let exclamationMark:Character = "!"
字符串可以通過傳遞一個值類型爲Character的數組作爲自變量來初始化:let catCharacters:[Character] = ["C","a","t","!","?"]
let catString = String(catCharacters)
print(catString)
連接字符串和字符
let string1 = "hello"
let string2 = "there"
var welcome = string1 + string2
可以通過加法賦值運算符將一個字符串添加一個已經存在字符串變量上:var instruction = "look over"
instruction += string2
可以用append() 方法將一個字符附加到一個字符串變量的尾部:welcome.append(exclamationMark)
字符串插值
let multiplier = 3
let message = "\(multiplier) times 2.5 is \(Double(multiplier) * 2.5)"
訪問和修改字符串
字符串索引
let greeting = "Guten Tag!"
greeting[greeting.startIndex];
greeting[greeting.index(before: greeting.endIndex)]
greeting[greeting.index(after: greeting.startIndex)]
let index = greeting.index(greeting.startIndex, offsetBy: 7)
greeting[index]
試圖獲取越界索引對應的Character,將引發一個運行時錯誤。 greeting[greeting.endIndex]
greeting.index(after: greeting.endIndex)
使用characters屬性的indices屬性會創建一個包含全部索引的範圍,用來在一個字符串中訪問單個字符。 for index in greeting.characters.indices {
print("\(greeting[index])")
}
插入和刪除
var welcome = "hello"
welcome.insert("!", at: welcome.endIndex)
welcome.insert(contentsOf: "there".characters, at: welcome.index(before: welcome.endIndex))
調用remove(at:)方法可以在一個字符串的指定索引刪除一個字符,調用removeSubrange(_:)方法可以在一個字符串的指定索引刪除一個子字符串。 welcome.remove(at: welcome.index(before: welcome.endIndex))
let range = welcome.index(welcome.endIndex, offsetBy: -6)..<welcome.endIndex
welcome.removeSubrange(range)
取自《the swift programming language》中文版