有很多方法可以做到这一点,但最简单的方法是使用分隔符将字符串拆分为数组。
如果您了解 JavaScript,那么它相当于.split()
字符串方法;迅速有这个功能 https://stackoverflow.com/a/25229901/1187415,但正如您所看到的,它可能会变得有点混乱。您可以扩展字符串像这样 https://gist.github.com/pyrtsa/c6af49d8f2d95a6b454d让它变得更简单一点。为了完整起见,我将其包含在这里:
import Foundation
extension String {
public func split(separator: String) -> [String] {
if separator.isEmpty {
return map(self) { String($0) }
}
if var pre = self.rangeOfString(separator) {
var parts = [self.substringToIndex(pre.startIndex)]
while let rng = self.rangeOfString(separator, range: pre.endIndex..<endIndex) {
parts.append(self.substringWithRange(pre.endIndex..<rng.startIndex))
pre = rng
}
parts.append(self.substringWithRange(pre.endIndex..<endIndex))
return parts
} else {
return [self]
}
}
}
现在,您可以致电.split()
在这样的字符串上:
"test".split("e") // ["t", "st"]
因此,您首先应该做的是通过分隔符将 ID 字符串分成多个段,这将是|
,因为这就是您的 ID 的分隔方式:
let ids: [String] = "XbfdASF;FBACasc|Piida;bfedsSA|XbbnSF;vsdfAs|".split("|")
现在,您的 ID 的字符串数组如下所示:
["XbfdASF;FBACasc", "Piida;bfedsSA", "XbbnSF;vsdfAs"]
您的 ID 格式如下ID;VALUE
,所以你可以像这样再次分割它们:
let pair: [String] = ids[anyIndex].split(";") // ["ID", "VALUE"]
您可以访问该数组索引 0 处的 ID 和索引 1 处的值。
Example:
let id: String = ids[1].split(";")[0]
let code: String = ids[1].split(";")[1]
println("\(id): \(code)") // Piida: bfedsSA