将字符串分配给Dictionary

时间:2014-11-11 20:37:10

标签: swift

我有这个:

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上打字。

2 个答案:

答案 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

}