字符串字面量
- 使用字符串字面量作为常量或者变量的初始值:
let someString = "some string literal value"
// 注意:Swift会为someString常量推断类型为string,因此你用了字符串字面量值来初始化。
- 多行字符串字面量,使用三个双引号引起来
let example = """
Are
U
OK
"""
初始化一个空字符串
var emptyString = "" // 空字符串赋值
var anotherEmptyString = String() // 初始化方法
字符串的可变性
- 链接字符串
let string1 = "hello"
let string2 = " there"
var welcome = string1 + string2
// welcome = "hello there"
var instruction = "look over"
instruction += string2
// instruction = "lock over there"
- 链接字符串和字符:使用 String类型的 append()方法
let exclamationMark : Character = "!"
welcome.append(exclamationMark)
// welcome = "hello there!"
- 字符串索引: startIndex/endIndex,前者是string的第一个character的位置,后者是最后一个字符的后一位
let greeting = "Guten Tag!"
greeting[greeting.startIndex]
// G
greeting[greeting.index(before: greeting.endIndex)]
// !
greeting[greeting.index(after: greeting.startIndex)]
// u
let index = greeting.index(greeting.startIndex, offsetBy: 7)
greeting[index]
// a
使用 characters属性的 indices属性来创建所有能够用来访问字符串中独立字符的索引范围 Range
for index in greeting.characters.indices {
print("(greeting[index]) ", terminator: "")
}
- 插入和删除
1. 插入:要给字符串的特定索引位置插入字符,使用 insert(_:at:)方法,另外要冲入另一个字符串的内容到特定的索引,使用 insert(contentsOf:at:) 方法。
var welcome = "hello"
welcome.insert("!", at: welcome.endIndex)
// welcome now equals "hello!"
welcome.insert(contentsOf:" there".characters, at:welcome.index(before: welcome.endIndex))
// welcome now equals "hello there!"
2.删除:要从字符串的特定索引位置移除字符,使用 remove(at:)方法,另外要移除一小段特定范围的字符串,使用 removeSubrange(_:) 方法:
welcome.remove(at: welcome.index(before: welcome.endIndex))
// welcome now equals "hello there"
let range = welcome.index(welcome.endIndex, offsetBy: -6)..<welcome.endIndex
welcome.removeSubrange(range)
// welcome now equals "hello"
字符串/字符相等性
- 字符串和字符相等性 :字符串和字符相等使用“等于”运算符 ( ==) 和“不等”运算符 ( !=)进行检查
- 前缀和后缀相等性 : 要检查一个字符串是否拥有特定的字符串前缀或者后缀,调用字符串的 hasPrefix(:)和 hasSuffix(:)方法