字符串字面量
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》中文版