我有这个:
var str:[String] = ["John:Computer Engineer","Melinda:Saler"]
我想分配给那个
var myDictVal:[String:String]?
.....
Doing some operation. After done, the value of myDictVal will be:
myDictVal = ["John":"Computer" , "Melinda":"Saler"]
如何将字符串数组赋值给Dictionary变量? 对不起我的英语不好。在我的iphone上打字。
答案 0 :(得分:0)
有很多方法可以做到 - 我选择的解决方案是:
:
,并创建一个(key,value)元组数组循环遍历所有元组,添加到字典
var res = str.map { (element: String) -> (key: String, value: String) in
var components = element.componentsSeparatedByString(":")
return (key: components[0], value: components[1])
}
for (key, value) in res {
myDictVal?[key] = value
}
请注意,如果任何数组元素没有key:value
格式,则此版本可能会抛出运行时异常。
答案 1 :(得分:0)
以下内容可行,但您可能应该添加某种验证以确保字符串具有正确的格式,特别是如果您从用户输入中获取它们。
var stringArray:[String] = ["John:Computer Engineer", "Melinda:Saler"]
var myDictVal:[String:String] = Dictionary<String, String>()
for item in stringArray {
var myArray = item.componentsSeparatedByString(":")
var name:String = myArray[0]
var title:String = myArray[1]
myDictVal[name] = title
}