swift给String增加substring方法

javascript中的 str.slice(1,-1)

在swift中要写成 str.substringFromIndex(str.startIndex.advancedBy(1),str.endindex.advancedBy(-1)),是不是很恐怖

幸运的是我们可以给swift内置类型增加任意的方法(好比在javascript的prototype上增加方法),比如这里给String增加了substring方法,如下

import Foundation

var s = "1234567890"

// 扩展String

extension String {
    func substring(s: Int,_ e: Int? = nil) -> String {
        let start = s >= 0 ? self.startIndex.advancedBy(s) : self.endindex.advancedBy(s)
        let end =  e == nil ? self.endindex : e >= 0 ? self.startIndex.advancedBy(e!) : self.endindex.advancedBy(e!)
        let range = Range<String.Index>(start..<end)
        return self.substringWithRange(range)
    }
    
}

print(s.substring(0,-1)) // 打印前n-1个字符: 123456789
print(s.substring(-2)) // 打印最后两个字符: 90
print(s.substring(-3,-2)) // 打印倒数第3个字符: 8

终于又可以愉快的玩耍了.

参考这里:http://www.swiftmi.com/topic/76.html (但是原文中不支持负数,也不支持传递一个参数的情况)

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...