Swift中的字符串和字符
2017-05-10 本文已影响28人
keisme
1. 初始化空字符串
var emptyString = ""
var anotherEmptyString = String()
// 两个字符串均为空并等价
判断字符串是否为空:
if emptyString.isEmpty {
print("Nothing to see here")
}
2. 字符串是值类型
Swift中的String
类型是值类型。如果你创建了一个新的字符串,那么当其进行常量、变量赋值操作,或在函数/方法中传递时,会进行值拷贝。任何情况下,都会对已有字符串值创建新副本,并对该副本进行传递或赋值操作。
3. 访问和修改字符串
3.1 字符串索引
- Index:
String.Index
对应着字符串中每一个Character
的位置 - startIndex:可以获取一个
String
的第一个Character
的索引 - endIndex:最后一个
Character
的索引,非有效下标 - index(before:):前一个索引
- index(after:):后一个索引
- index(_:offsetBy:):对应偏移量的索引
- indices:创建一个包含全部索引的范围(
Range
),用来在一个字符串中访问单个字符
3.2 插入和删除
- insert(_:at:):在一个字符串的指定索引插入一个字符
- insert(contentsOf:at:):在一个字符串的指定索引插入一段字符串
- remove(at:):在一个字符串的指定索引删除一个字符
- removeSubrange(_:):在一个字符串的指定索引删除一个子字符串
var welcome = "hello there!"
welcome.remove(at: welcome.index(before: welcome.endIndex))
let range = welcome.index(welcome.endIndex, offsetBy: -6)..<welcome.endIndex
welcome.removeSubrange(range)
// welcome 现在等于"hello"
3.3 比较字符串
3.3.1 字符串/字符相等
字符串/字符可以用操作符==
和!=
比较是否相等。
3.3.2 前缀/后缀相等
hasPrefix(_:)
和hasSuffix(_:)
用来检查字符串是否拥有特定前缀/后缀。