swift 字符串截取

//swift 2.3之前可以使用
let hex = "112233"
//截取第二位到第四位
let greenHex = hex.substringWithRange(Range<String.Index>(start: hex.startIndex.advancedBy(2), end: hex.startIndex.advancedBy(4)))
但是swift3 会删除 start...end方法 提示报错  ('init(start:end:)' is deprecated: it will be removed in Swift 3. Use the '..<' operator)
在swift2.3可以使用
let myString = "112233"
截取第二到第四位
myString[myString.startIndex.advancedBy(2)..<myString.startIndex.advancedBy(4)]
//swift3
extension String.Index{
    func successor(in string:String)->String.Index{
        return string.index(after: self)
    }
    
    func predecessor(in string:String)->String.Index{
        return string.index(before: self)
    }
    
    func advance(_ offset:Int, `for` string:String)->String.Index{
        return string.index(self, offsetBy: offset)
    }
}

//截取第二到第四位
let new = myString[myString.startIndex.advance(2, for: myString)..<myString.startIndex.advance(4, for: myString)]

extension String {
    //截取需要的位数
    func subString(begin:Int,end:Int) -> String {
        if self.characters.count<begin || self.characters.count<end {
            return ""
        }
        return self[self.startIndex.advance(begin, for: self)..<self.startIndex.advance(end, for: self)]
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容