swift3 截取字符串

方法介绍

如果没有耐心看完,可以直接跳到最后获取 Stringextension

系统为我们提供了三种截取字符串的方式

1、 substring(from: String.Index)from 索引处截取到字符串末尾

let string = "Hello Swift"
let fromIndex = string.index(string.startIndex, offsetBy: 5)
print(string.substring(from: fromIndex)) // 打印 " Swift"

2、 substring(to: String.Index) 从首位截取到 to 的索引位置

let string = "Hello Swift"
let toIndex = string.index(string.startIndex, offsetBy:5)
print(string.substring(to: toIndex)) // 打印 "Hello"

3、 substring(with: Range<String.Index>) 截取 with 的范围内的字符串

let string = "Hello Swift"
let fromIndex = string.index(string.startIndex, offsetBy: 3)
let toIndex = string.index(string.startIndex, offsetBy: 5)
print(string.substring(with: fromIndex..<toIndex))

便于使用的扩展

使用 "Hello Swift"[0..<5] 即可得到 "Hello"

extension String {
     // 开区间扩展 ([a..<b])
     subscript (range: CountableRange<Int>) -> String? {
          // 如果觉得不会出现越界的问题可以去掉这部分,并把返回值改为 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]
     }
 }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容