【发布时间】:2017-07-25 02:42:24
【问题描述】:
如何获取冒号后面的值?
示例字符串:“aaa:test , bbb:test , ccc:test”
我必须识别 aaa:、bbb:、ccc: 才能获得冒号后面的值。
还有一种特殊情况: "aaa:aaa: , bbb:bbb, , ccc:test"
该值可能与变量具有完全相同的单词,也可能不完全相同。此外,该值可能包含逗号。
【问题讨论】:
-
解决方案无法处理我上面提到的特殊情况
如何获取冒号后面的值?
示例字符串:“aaa:test , bbb:test , ccc:test”
我必须识别 aaa:、bbb:、ccc: 才能获得冒号后面的值。
还有一种特殊情况: "aaa:aaa: , bbb:bbb, , ccc:test"
该值可能与变量具有完全相同的单词,也可能不完全相同。此外,该值可能包含逗号。
【问题讨论】:
使用 String 的 componenetSeparatedBy 方法。我假设所有的键值都用 " , " 分隔
let wordsArr = "aaa:test: , bbb:test,a , ccc:test".components(separatedBy: " , ") as [String]
这将为您提供一个包含单词 {[aaa: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!)")
【讨论】: