Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 用swift中的两个不同字符动态分隔字符串_Arrays_Swift_String - Fatal编程技术网

Arrays 用swift中的两个不同字符动态分隔字符串

Arrays 用swift中的两个不同字符动态分隔字符串,arrays,swift,string,Arrays,Swift,String,我正在尝试将此字符串拆分为数组,稍后将此数组转换为字典 let string = "test=1&name=Noodle&item=100" let edit = string.components(separatedBy: "=") // string.components(separatedBy: "=" && "&")??? 但这只将字符串分隔一个字符,即“=” 我试图实现的是用两个字符“=”和“&”分隔字符串。我怎样才能做到这一点呢?你可以这样做

我正在尝试将此字符串拆分为数组,稍后将此数组转换为字典

let string = "test=1&name=Noodle&item=100"
let edit = string.components(separatedBy: "=")
// string.components(separatedBy: "=" && "&")???
但这只将字符串分隔一个字符,即“=”

我试图实现的是用两个字符“=”和“&”分隔字符串。我怎样才能做到这一点呢?

你可以这样做:

func stringConvert(string: String) -> [String: Any] {

    let keysAndValues = string.components(separatedBy: "&")
    let arraysOfPairs = keysAndValues.map { $0.components(separatedBy: "=") }
    let tuples = arraysOfPairs.map { ($0[0], $0[1]) }
    let d = Dictionary(uniqueKeysWithValues: tuples)

    return d
}

let str = "test=1&name=Noodle&item=100"

let dict = stringConvert(string: str)
//["test": "1", "item": "100", "name": "Noodle"]
你可以这样做:

func stringConvert(string: String) -> [String: Any] {

    let keysAndValues = string.components(separatedBy: "&")
    let arraysOfPairs = keysAndValues.map { $0.components(separatedBy: "=") }
    let tuples = arraysOfPairs.map { ($0[0], $0[1]) }
    let d = Dictionary(uniqueKeysWithValues: tuples)

    return d
}

let str = "test=1&name=Noodle&item=100"

let dict = stringConvert(string: str)
//["test": "1", "item": "100", "name": "Noodle"]

您可以做的是替换字符串中出现的字符,然后将其分隔开

let string = "test=1&name=Noodle&item=100"

let edit = string.replacingOccurrences(of: "&", with: "=").components(separatedBy: "=")

您可以做的是替换字符串中出现的字符,然后将其分隔开

let string = "test=1&name=Noodle&item=100"

let edit = string.replacingOccurrences(of: "&", with: "=").components(separatedBy: "=")

“let d”行中有一个错误,表示“参数标签'unique keys with values'与任何可用重载都不匹配”@Nodoodle您使用的是Swift 4.2吗?是的,我使用的是4。2@Nodoodle因为它是标准库的一部分。一定要在操场上尝试(不要忘记导入基础)仍然有相同的错误。但我在这里找到了答案。但这不是动态的“let d”行中有一个错误,它表示“参数标签'unique keys with values'不匹配任何可用的重载”@Nodoodle您使用的是Swift 4.2吗?是的,我使用的是4。2@Nodoodle因为它是标准库的一部分。一定要在操场上尝试(不要忘记导入基础)仍然有相同的错误。但我在这里找到了答案。但这一个不是dynamicWorks的魅力!我怎么能没有想到这一点…谢谢你的帮助,就像一个魅力!我怎么能不去想这个…谢谢你的帮助