2017-07-25 63 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