如何在Swift中拆分string
let string = "hello hi" var hello = "" var hi = "" 我不想分割我的string,以便你好的价值“你好”和嗨的价值“嗨”
尝试这个:
 var myString: String = "hello hi"; var myStringArr = myString.componentsSeparatedByString(" ") 
 其中myString是string的名称, myStringArr包含由空格分隔的组件。 
那么你可以得到的组件如下:
 var hello: String = myStringArr [0] var hi: String = myStringArr [1] 
Doc: componentsSeparatedByString
编辑:对于Swift 3,上面将是:
 var myStringArr = myString.components(separatedBy: " ") 
Doc: 组件(separatedBy 🙂
 这里也是收到正则expression式的split 。 您可以为将来的使用定义扩展名: 
斯威夫特4
 extension String { func split(regex pattern: String) -> [String] { guard let re = try? NSRegularExpression(pattern: pattern, options: []) else { return [] } let nsString = self as NSString // needed for range compatibility let stop = "<SomeStringThatYouDoNotExpectToOccurInSelf>" let modifiedString = re.stringByReplacingMatches( in: self, options: [], range: NSRange(location: 0, length: nsString.length), withTemplate: stop) return modifiedString.components(separatedBy: stop) } } 
例子:
 let string1 = "hello world" string1.split(regex: " ") // ["hello", "world"] let string2 = "hello world" string2.split(regex: "[ ]+") // ["hello", "world"] 
Swift 2.2
 extension String { func split(regex pattern: String) -> [String] { guard let re = try? NSRegularExpression(pattern: pattern, options: []) else { return [] } let nsString = self as NSString // needed for range compatibility let stop = "<SomeStringThatYouDoNotExpectToOccurInSelf>" let modifiedString = re.stringByReplacingMatchesInString( self, options: [], range: NSRange(location: 0, length: nsString.length), withTemplate: stop) return modifiedString.componentsSeparatedByString(stop) } } 
Swift 2.0
 extension String { // java, javascript, PHP use 'split' name, why not in Swift? :) func split(regex: String) -> Array<String> { do{ let regEx = try NSRegularExpression(pattern: regex, options: NSRegularExpressionOptions()) let stop = "<SomeStringThatYouDoNotExpectToOccurInSelf>" let nsString = self as NSString // needed for range compatibility let modifiedString = regEx.stringByReplacingMatchesInString (self, options: NSMatchingOptions(), range: NSRange(location: 0, length: nsString.length), withTemplate:stop) return modifiedString.componentsSeparatedByString(stop) } catch { return [] } } } 
Swift 1.1
 extension String { // java, javascript, PHP use 'split' name, why not in Swift? :) func split(splitter: String) -> Array<String> { let regEx = NSRegularExpression(pattern: splitter, options: NSRegularExpressionOptions(), error: nil) let stop = "<SomeStringThatYouDoNotExpectToOccurInSelf>" let modifiedString = regEx.stringByReplacingMatchesInString (self, options: NSMatchingOptions(), range: NSMakeRange(0, countElements(self)), withTemplate:stop) return modifiedString.componentsSeparatedByString(stop) } } 
例子:
 let string1 = "hello world" string1.split(" ") // ["hello", "world"] let string2 = "hello world" string2.split("[ ]+") // ["hello", "world"]