一、String.Index
- String 值的索引是 StringIndex 类型,不是 Int 类型
- index 不是字符串下标参数, 而是字符所在字符串中的位置
- startIndex:非空字符串中第一个 character的位置
- endIndex:字符串的“超过结尾”的位置; 也就是说比位置大一
- 若字符串为空,则 startIndex 与 endIndex相等
二、访问字符串中的字符
1、获取字符串中第一个字符
var str = "Hello word!"
str[str.startIndex] // 输出:H
2、获取第二个字符
var str = "Hello word!"
str[str.index(str.startIndex, offsetBy: 1)] // 输出:e
3、获取字符串中最后一个字符
var str = "Hello word!"
str[str.index(before: str.endIndex)] // 输出:!
因为str.endIndex指向的是最后一位字符的某便位置,所以需要使用index(before:)方法获取最后一位有效字符
三、插入操作
1、使用 insert( , at:) 插入一个字符
var str = "Hello"
str.insert("!", at: str.endIndex) // 输出:Hello!
2、使用 insert(contentsOf:, at:) 插入一个字符串
var str = "Hello!"
str.insert(contentsOf:"world", at: str.index(before: str.endIndex)) // 输出:Hello world!
四、删除操作
1、使用 remove(at: ) 移除某个字符
var str = "Hello World!"
str.remove(at: str.index(before: str.endIndex)) // 输出:!
print(str) // 输出:Hello World
打印结果
Hello World
2、移除一段特定的字符串
var str = "Hello word!"
let range = str.index(str.startIndex, offsetBy: 5)..<str.endIndex // 输出:{{_rawBits 327937}, {_rawBits 720897}}
str.removeSubrange(range) // 输出:Hello
print(str) // 输出:Hello
打印结果
Hello