我必须解析这些类型的字符串:
let result1 = "t=20171017T1201&s=349.00&fn=8712000100030779&i=21456&fp=124519970&n=1"
let result2 = "t=20171016T180757&s=92.00&fn=8710000101140572&i=17711&fp=4191934636&n=1"
我需要以某种方式提取 t
和 fn
参数并将它们保存到另一个字符串:
print(t1) // 20171017T1201
print(fn1) // 8712000100030779
print(t2) // 20171016T180757
print(fn2) // 8710000101140572
我设法通过逐个符号检查整个字符串来获取这些参数,但一定有更好的方法来做到这一点。
最佳答案
您需要使用 components(separatedBy: _)
将字符串拆分为可解析的对。
let result1 = "t=20171017T1201&s=349.00&fn=8712000100030779&i=21456&fp=124519970&n=1"
let result2 = "t=20171016T180757&s=92.00&fn=8710000101140572&i=17711&fp=4191934636&n=1"
func value(for name: String, in query: String) -> String? {
for params in query.components(separatedBy: "&") {
let pair = params.components(separatedBy: "=")
if (pair.first == name) {
return pair.last
}
}
return nil
}
print(value(for: "t", in: result1))
print(value(for: "fn", in: result1))
print(value(for: "t", in: result2))
print(value(for: "fn", in: result2))
关于ios - 将字符串的一部分复制到另一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47073399/