Swift String 高级使用 Index 和 Rang

1、通过索引获取字符

var str = "Hello, Swift"
// 不可以使用[]获取
//str[0] 错误
str.characters[0] //"H"

2、索引的用法

// advancedBy
str[startIndex.advancedBy(5)] //","
startIndex

let spaceIndex = startIndex.advancedBy(6)
spaceIndex    //"6"
str[spaceIndex]  //" "

// predecessor 和 succesor
str[spaceIndex.predecessor()]  //前一个 ","
str[spaceIndex.successor()]  //后一个 "s"

// endIndex
let endIndex = str.endIndex  //12 
//*不是最后一个,而是最后一个的前一个
//[startIndex, endIndex)
//str[endIndex] 错误的
str[endIndex.predecessor()]

3、Rang的使用

// Range
str[startIndex..<spaceIndex]  //"Hello,"
let range = startIndex..<spaceIndex.predecessor()//0..<5

str.replaceRange(range, with: "Hi")//替换 "Hi,Swift"
str.appendContentsOf("!!!")//"Hi,Swift!!!"
str.insert("?", atIndex: str.endIndex)//"Hi,Swift!!!?"
str.removeAtIndex( str.endIndex.predecessor() )//"?"
str //"Hi,Swift!!!"
str.removeRange( str.endIndex.advancedBy(-2)..<str.endIndex )//"Hi,Swift!"区间remove

你可能感兴趣的:(String,索引,swift)