一趾撵、String.Index
- String 值的索引是 StringIndex 類型侄柔,不是 Int 類型
- index 不是字符串下標參數(shù), 而是字符所在字符串中的位置
- startIndex:非空字符串中第一個 character的位置
- endIndex:字符串的“超過結(jié)尾”的位置; 也就是說比位置大一
- 若字符串為空占调,則 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
打印結(jié)果
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
打印結(jié)果
Hello