iOS开发iOS点点滴滴

swift 字符串截取

2016-05-04  本文已影响491人  lkqin
//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)]
    }
}
上一篇 下一篇

猜你喜欢

热点阅读