Swift 字符串的索引可以使用整数和字符串进行访问。字符串中每个字符都有一个索引,第一个字符的索引为 0,最后一个字符的索引为字符串长度 - 1。可以使用 startIndex
和 endIndex
属性访问字符串的第一个和最后一个索引。
例如:
let str = "Hello, world!"
let startIndex = str.startIndex // 第一个索引
let endIndex = str.endIndex // 最后一个索引的下一个位置
print(str[startIndex]) // 打印第一个字符
print(str[endIndex]) // 触发运行时错误,越界访问
要访问字符串中的单个字符,可以使用 index(_:offsetBy:)
方法,该方法从指定索引偏移一定量并返回新的索引。也可以使用字符串中较简单的索引方法 string.index(before:)
和 string.index(after:)
来访问前一个和后一个索引。
例如:
let index = str.index(str.startIndex, offsetBy: 7) // 获取第7个索引
print(str[index]) // 打印第7个字符,输出 "w"
let previousIndex = str.index(before: index) // 获取前一个索引
print(str[previousIndex]) // 打印前一个字符,输出 ","
另外,字符串的索引不是整数类型,所以不能将两个索引相加或相减。如果要访问字符串中的一段子字符串,可以使用 prefix(_:)
,suffix(_:)
和 substring(with:)
等方法。