如何获取冒号后的值?
示例字符串:“aaa:test,bbb:test,ccc:test”
我必须识别aaa:,bbb:,ccc:才能得到冒号后面的值。
还有一个特例:“a a a:aaa:,bbb:bbb,ccc:test”
该值可能与变量的单词完全相同,也可能不完全相同。此外,该值可能包含逗号。

最佳答案

使用字符串的componenetSeparatedBy方法。我假设所有的键值都用“,”分隔

   let wordsArr = "aaa:test: , bbb:test,a , ccc:test".components(separatedBy: " , ") as [String]

这将给您一个包含单词{[a a a:test:],[bbb:test,a],[ccc:test]}的数组
    var aaa, bbb, ccc : String?


    for (_,keyValueWords) in wordsArr.enumerated()  {

        var strKeyValuePair = keyValueWords
        if strKeyValuePair.hasPrefix("aaa:") {
            aaa = String(strKeyValuePair.characters.dropFirst(4))
        }
        else if strKeyValuePair.hasPrefix("bbb:"){
            bbb = String(strKeyValuePair.characters.dropFirst(4))

        }else  if strKeyValuePair.hasPrefix("ccc:"){
            ccc = String(strKeyValuePair.characters.dropFirst(4))
        }

    }

    print("aaa=\(aaa!) , bbb=\(bbb!) , ccc=\(ccc!)")

关于swift - 在Swift中分隔字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45293022/

10-11 16:43