Swift - 扩展String增加字符串截取方法subString(start:, length:)
(本文代码已升级至Swift4)
在 Swift 开发时,通过 String 的 substring 可以实现字符串的截取,不过由于其参数类型是 String.Index 或 Range,有时使用起来会比较麻烦。
1,扩展String
这里对 String 进行扩展,新增一个 subString 方法。直接可以根据起始位置(Int 类型)和需要的长度(Int 类型),来截取出子字符串。extension String { //根据开始位置和长度截取字符串 func subString(start:Int, length:Int = -1) -> String { var len = length if len == -1 { len = self.count - start } let st = self.index(startIndex, offsetBy:start) let en = self.index(st, offsetBy:len) return String(self[st ..< en]) } }
2,使用样例
let str1 = "欢迎访问hangge.com" let str2 = str1.subString(start: 4, length: 6) print("原字符串:\(str1)") print("截取出的字符串:\(str2)")运行结果如下:
谢谢hang歌!
航哥V5
航哥,你好,swift4里面self.count跟self.characters.count有区别吗,self是字符串
let en = characters.index(st, offsetBy:len)
这句代码报错了
fatal error: cannot increment beyond endIndex (lldb)