字符串索引
每一个 String 值都有相关的索引类型,String.Index,它相当于每个 Character 在字符串中的位置
- startIndex 属性来访问 String 中第一个 Character 的位置。 endIndex 属性就是 String 中最后一个 Character 后的位置【endIndex 非法,并不是下标】
- endIndex 属性并不是字符串下标脚本的合法实际参数
- 如果 String 为空,则 startIndex 和 endIndex 相等
let greeting = "Guten Iag!"
greeting[greeting.startIndex]
startIndex.png
字符串索引.png
- 使用 index(before:) 和 index(after:)方法来访问给定索引的前后
- 要访问给定索引更远的索引,你可以使用index(_, offsetBy:)
-
使用 indices 属性来访问字符串中每个字符的索引
字符串索引.png
插入字符
- 插入字符,使用 insert(_:at:) 方法
- 插入另一个字符串的内容到特定的索引,使用 insert(contentsOf:at:)方法
var welcome = "hello"
welcome.insert("!", at: welcome.endIndex)
print(welcome)
welcome.insert(contentsOf: " there", at: welcome.index(before: welcome.endIndex))
print(welcome)
打印结果如下:
hello!
hello there!
删除
- 移除字符,使用 remove(at:)方法
- 移除一小段特定范围的字符串,使用 removeSubrange(_:)方法
var welcome = "hello"
welcome.insert("!", at: welcome.endIndex)
print(welcome)
welcome.insert(contentsOf: " there", at: welcome.index(before: welcome.endIndex))
print(welcome)
welcome.remove(at: welcome.index(before: welcome.endIndex))
print(welcome)
let range = welcome.index(welcome.endIndex, offsetBy: -6)..<welcome.endIndex
welcome.removeSubrange(range)
print(welcome)
打印结果如下:
hello!
hello there!
hello there
hello
网友评论