2015-09-14 9 views
5

Iまし2.0迅速でXcodeの7グラム、何であるのと同等espression:新しい文字列クラスにスウィフト2.0 substringwithrange

Let myNSString = "full text container" 
myNSString.substringWithRange(NSRange(location: 0, length: 3)) 

答えて

8

これを試してみてください:

let myString = "full text container" 
myString[myString.startIndex..<myString.startIndex.advancedBy(3)] 
5

あなたはこれらの拡張機能を使用することができます。

スウィフト2

extension String 
{ 
    func substringWithRange(start: Int, end: Int) -> String 
    { 
     if (start < 0 || start > self.characters.count) 
     { 
      print("start index \(start) out of bounds") 
      return "" 
     } 
     else if end < 0 || end > self.characters.count 
     { 
      print("end index \(end) out of bounds") 
      return "" 
     } 
     let range = Range(start: self.startIndex.advancedBy(start), end: self.startIndex.advancedBy(end)) 
     return self.substringWithRange(range) 
    } 

    func substringWithRange(start: Int, location: Int) -> String 
    { 
     if (start < 0 || start > self.characters.count) 
     { 
      print("start index \(start) out of bounds") 
      return "" 
     } 
     else if location < 0 || start + location > self.characters.count 
     { 
      print("end index \(start + location) out of bounds") 
      return "" 
     } 
     let range = Range(start: self.startIndex.advancedBy(start), end: self.startIndex.advancedBy(start + location)) 
     return self.substringWithRange(range) 
    } 
} 

スウィフト3

extension String 
{ 
    func substring(start: Int, end: Int) -> String 
    { 
     if (start < 0 || start > self.characters.count) 
     { 
      print("start index \(start) out of bounds") 
      return "" 
     } 
     else if end < 0 || end > self.characters.count 
     { 
      print("end index \(end) out of bounds") 
      return "" 
     } 
     let startIndex = self.characters.index(self.startIndex, offsetBy: start) 
     let endIndex = self.characters.index(self.startIndex, offsetBy: end) 
     let range = startIndex..<endIndex 

     return self.substring(with: range) 
    } 

    func substring(start: Int, location: Int) -> String 
    { 
     if (start < 0 || start > self.characters.count) 
     { 
      print("start index \(start) out of bounds") 
      return "" 
     } 
     else if location < 0 || start + location > self.characters.count 
     { 
      print("end index \(start + location) out of bounds") 
      return "" 
     } 
     let startIndex = self.characters.index(self.startIndex, offsetBy: start) 
     let endIndex = self.characters.index(self.startIndex, offsetBy: start + location) 
     let range = startIndex..<endIndex 

     return self.substring(with: range) 
    } 
} 

さらに簡単になります:

let substring = myNSString.substringWithRange(0, location: 3)