我写了一个创建split
方法的扩展名:
extension String {
func split(splitter: String) -> Array<String> {
return self.componentsSeparatedByString(splitter)
}
}
所以在操场上我可以写:
var str = "Hello, playground"
if str.split(",").count > 1{
var out = str.split(",")[0]
println("output: \(out)") // output: Hello
}
在Java中使用正则表达式我需要做什么:
str.split("[ ]+")
因为这种方式不起作用。
谢谢,
答案 0 :(得分:9)
首先,您的拆分功能有一些冗余。它足以返回
return self.componentsSeparatedByString(splitter)
其次,要使用正则表达式,您只需要创建一个NSRegularExpression
,然后用您自己的“停止字符串”替换所有出现的内容,最后使用它们分开。 E.g。
let regEx = NSRegularExpression.regularExpressionWithPattern
(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)