swift给String增加substring方法

前端之家收集整理的这篇文章主要介绍了swift给String增加substring方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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

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

  1. import Foundation
  2.  
  3. var s = "1234567890"
  4.  
  5. // 扩展String
  6.  
  7. extension String {
  8. func substring(s: Int,_ e: Int? = nil) -> String {
  9. let start = s >= 0 ? self.startIndex.advancedBy(s) : self.endIndex.advancedBy(s)
  10. let end = e == nil ? self.endIndex : e >= 0 ? self.startIndex.advancedBy(e!) : self.endIndex.advancedBy(e!)
  11. let range = Range<String.Index>(start..<end)
  12. return self.substringWithRange(range)
  13. }
  14. }
  15.  
  16. print(s.substring(0,-1)) // 打印前n-1个字符: 123456789
  17. print(s.substring(-2)) // 打印最后两个字符: 90
  18. print(s.substring(-3,-2)) // 打印倒数第3个字符: 8

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

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

猜你在找的Swift相关文章