系统方法截取字符串
如果没有耐心看完,可以直接到文章结尾取 String 的 extension
string.substring(to: String.Index) // 从起始截取到 to 索引
let toIndex = string.index(string.startIndex, offsetBy: 5) //开始索引偏移5
print(string.substring(to: toIndex)) // "Hello"
string.substring(from: String.Index) // 从第 from 索引截取到末尾
''let fromIndex = string.index(string.startIndex, offsetBy: 5)// 开始索引偏移5
''print(string.substring(from: fromIndex)) // " Swift"
string.substring(with: Range<String.Index>) // 截取 with 范围内字符
''let fromIndex = string.index(string.startIndex, offsetBy: 1) // 开始索引偏移1
''let toIndex = string.index(string.startIndex, offsetBy: 5) // 开始索引偏移5
''print(string.substring(with: fromIndex..<toIndex)) // "ello"
给 String
添加 extension
使用时 string[0..<5]
即可获取到 "Hello"
extension String {
// 开区间扩展 ([a..<b])
subscript (range: CountableRange<Int>) -> String? {
if range.upperBound > characters.count {
return nil
}
let fromIndex = index(startIndex, offsetBy: range.lowerBound)
let toIndex = index(startIndex, offsetBy: range.upperBound)
return substring(with: fromIndex..<toIndex)
}
// 闭区间扩展([a...b] 如果不需要可以不添加这个扩展)
subscript (range: ClosedRange<Int>) -> String? {
return self[range.lowerBound..<range.upperBound+1]
}
}