【发布时间】:2015-09-30 23:44:20
【问题描述】:
在 Swift 中将像 AAA:111;BBB:222;333;444;CCC:555 这样的字符串简化为字典的简单方法是什么?我有以下代码:
var str = "AAA:111;BBB:222;333;444;CCC:555"
var astr = str.componentsSeparatedByString(";").map { (element) -> [String:String] in
var elements = element.componentsSeparatedByString(":")
if elements.count < 2 {
elements.insert("N/A", atIndex: 0)
}
return [elements[0]:elements[1]]
}
上面的代码产生了一个 Dictionaries 的 Array:[["A": "111"], ["BBB": "222"], ["UKW": "333"], ["UKW": "444"], ["CCC": "555"]]
我希望它产生 ["A": "111", "BBB": "222", "UKW": "333", "UKW": "444", "CCC": "555"]
但无论我尝试什么,因为我在 Array 上调用 map 函数,因此似乎无法转换 map 函数结果的性质。
注意:字符串格式的字典被描述为具有KEY:VALUE; 格式或VALUE; 格式,在这种情况下,映射函数将添加"N/A" 作为未命名值的键。
非常感谢您对此事的任何帮助。
【问题讨论】:
标签: arrays swift dictionary swift2