swift 3.0之后的
substring
截取相比2.0有了很大的不同,to
和from
的方法还好,with
的方法就感觉不是很方便了,太绕了。
基于OC的知识,这里就简单说一下实现方法。
用于做示范的示例:
var str = "Hello, World"
-
str.substring(to: String.Index)
这个方法会从字符串的开始截取到to
参数指定的索引。
let index = str.index(str.startIndex, offsetBy: 5) //索引为从开始偏移5个位置
str.substring(to: index) // 获取Hello
-
substring(from: String.Index)
这个方法会从from参数指定的索引截取到字符串的末尾。
let index = str.index(str.startIndex, offsetBy: 7) //索引从开始偏移7个位置
str.substring(from: index) // 输出World
-
str.substring(with: Range<String.Index>)
这个方法是截取指定的字符串范围,范围由Range指定。类似于Swift 2的String.substringWithRange
。
let start = str.index(str.startIndex, offsetBy: 7) //索引从开始偏移7个位置
let end = str.index(str.endIndex, offsetBy: -3) //所有从末尾往回偏移三个位置
let range = start..<end
str.substring(with: range) // 输出Wo
不要脸的抄袭自编程笔记