//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)]
}
}
网友评论