Swift-字符串的截取

2018-04-17  本文已影响11人  Eddy_0

在Swift4.0中,字符串的拼接很简单。直接用'+'或者'+='就行,但是我看了一下文档,字符串的剪切方法不多,而且不容易使用。
一, 先看一下系统的方法:

let string = "cang mang de tian ya shi wo de ai"    

//获取第一个字母'd'所在的位置 
let index = string.index(of: "d")!

//1, 字母'd'(包括)之前的字符串
let str1 = string[...index]
//"cang mang d"

//字母'd'(不包括)之前的字符串
let str11 = string[..<index]
//"cang mang "

//2, 字母'd'(包括)之后的字符串
let str2 = string[index...]
//"de tian ya shi wo de ai"

//字符串string的开始字母的下标
let startIndex = string.startIndex

//从开始到字母'd'下标区间
let range = startIndex..<index

//区间内的字符串
let str3 = String(string[range])
//"cang mang "

//下标4
let index4 = string.index(string.startIndex, offsetBy: 4)

//从开始到index4的字符串
let str4 = String(string[startIndex...index4])
//"cang "

//下标4后面一个的下标
let index5 = string.index(after: index4)

//从开始到index5区间的字符串
let str5 = String(string[startIndex...index5])
//"cang m"

//下标index5的前一个下标
let index6 = string.index(before: index5)

//从开始到index6的字符串
let str6 = String(string[startIndex...index6])
//"cang "

二, 说实话上面的方法使用有点费劲,可以给String添加 extension方法

 extension String {
 
     //1, 截取规定下标之后的字符串
 
  func subStringFrom(index: Int)-> String {
 
     let temporaryString: String = self
 
     let temporaryIndex = temporaryString.index(temporaryString.startIndex, offsetBy: 3)
 
     return String(temporaryString[temporaryIndex...])
 
   }
 
     //2, 截取规定下标之前的字符串
   func subStringTo(index: Int) -> String {
     let temporaryString = self
     let temporaryIndex = temporaryString.index(temporaryString.startIndex, offsetBy: index)
     return String(temporaryString[...temporaryIndex])
 
   }
 
 }
 
 
 
 方法的使用:
 
 "Hello World".subStringFrom(index: 3)      // "lo World"
 
 "Hello World".subStringTo(index: 3)            //"Hell" 
上一篇 下一篇

猜你喜欢

热点阅读