## Swift 字符串之 String.index 和 range
```
var str = "hello, swift"
let startIndex = str.startIndex // 指向字符串最開始的索引
let endIndex = str.endIndex // 指向字符串結束的索引
str[startIndex] // 截取字符串第 0 位的字符
str[str.index(startIndex, offsetBy: 5)] // 截取字符串第 5 位的字符 為:","
// 獲取空格
let spaceIndex = str.index(startIndex, offsetBy: 6)
str[spaceIndex]
// 如果想尋找一個String.Index的前驅和后繼,需要使用String.index(before:)和String.index(after:)方法
str[str.index(before: spaceIndex)]
str[str.index(after: spaceIndex)]
// 獲取最后的字符
str[str.index(before: endIndex)]
// 獲取字符范圍
str[startIndex ..< spaceIndex] // 從開始截取到空白字符
let range = startIndex ..< str.index(before: spaceIndex)
// 字符串替換(改變原字符串)
str.replaceSubrange(range, with: "Hi")
// 字符串追加(改變原字符串)
str.append("!!!")
// 字符串插入(改變原字符串)
str.insert("?", at: str.endIndex)
// 字符串刪除(不改變原字符串)
str.remove(at: str.index(before: endIndex))
// 反向截取(改變原字符串)
str.removeSubrange(str.index(endIndex, offsetBy: -2) ..< str.endIndex)
```
- 學習筆記
- 基礎
- 基本類型之整型
- 基本類型之浮點型
- 基本類型之布爾類型以及簡單的 if 語句
- 基礎類型之元組
- 基本類型之其他
- 運算符
- 基礎運算符
- 比較運算符、邏輯運算符
- 三元運算符
- 范圍運算符for-in
- 邏輯控制
- 循環結構
- 選擇結構
- 字符串
- Character和Unicode
- String.index 和 range
- 可選型
- 容器類
- 數組初始化
- 數組基本操作
- 字典初始化
- 字典基本操作
- 集合初始化
- 集合基本操作
- 函數
- 閉包
- 枚舉
- 結構體
- 類
- 文檔注釋
- 屬性和方法
- 下標和運算符重載
- 拓展和泛型
- 協議
- 其他
- Swift 3.0 For 循環
- Swift 隨機數的生成
- IOS開發玩轉界面 UIKit
- UILable 文本顯示控件
- UIButton 簡單的交互控件
- UIImageView 圖片控件
- UISearchBar 搜索控件