2017-07-25 109 views
0

如何获取冒号后的值?在Swift中分隔字符串

例字符串: “AAA:测试,BBB:测试,CCC:测试”

我不得不承认AAA:BBB:CCC:冒号之后获得的价值。

还有一个特殊情况: “AAA:AAA:,BBB:BBB,CCC:测试”

值可能会或可能不会有完全相同的字作为变量。此外,该值可能包含逗号。

+0

该解决方案不能处理我上面提到的特殊情况 – henry

回答

2

使用String的componentsnetSeparatedBy方法。我假设所有的键 - 值将由被分离“”

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

这会给你与字阵列{[AAA:测试:],[BBB:试验,],[CCC:测试]}

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!)") 
+0

但我必须承认价值属于哪里。因为有时候字符串可能只有“bbb:test,ccc:test”。该字符串是动态的。 – henry

+0

所以如果字符串是“bbb:test,ccc:test”,那么你想要输出什么? –

+0

我将创建5个变量,var aaa,var bbb,var ccc,var ddd,var eee,并且我必须获得相应的值到这些变量中 – henry