美文网首页
swift3 截取字符串

swift3 截取字符串

作者: CoderAzreal | 来源:发表于2017-06-17 23:54 被阅读0次

    方法介绍

    如果没有耐心看完,可以直接跳到最后获取 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]
         }
     }
    

    相关文章

      网友评论

          本文标题:swift3 截取字符串

          本文链接:https://www.haomeiwen.com/subject/wjobqxtx.html