我尝试在Swift(1.2)中使用多个分隔符或苹果称之为分隔符来拆分(或分解)字符串。
我的字符串看起来像这样:
KEY1=subKey1=value&subkey2=valueKEY2=subkey1=value&subkey2=valueKEY3=subKey1=value&subkey3=value
为了便于阅读,我把它格式化了:
KEY1=subKey1=value&subkey2=value
KEY2=subkey1=value&subkey2=value
KEY3=subKey1=value&subkey3=value
大写的“KEY”是预定义的名称。
我尝试使用以下命令来实现:
var splittedString = string.componentsSeparatedByString("KEY1")
但正如你所看到的,我只能用一个KEY作为分隔符来完成这一点,所以我正在寻找这样的东西:
var splittedString = string.componentsSeperatedByStrings(["KEY1", "KEY2", "KEY3"])
所以结果是:
[
"KEY1" => "subKey1=value&subkey2=value",
"KEY2" => "subkey1=value&subkey2=value",
"KEY3" => "subkey1=value&subkey2=value"
]
Swift 1.2中有什么内置的东西可以使用吗?或者有什么扩展/库可以轻松做到这一点?
谢谢你的时间,并有一个伟大的一天!
7条答案
按热度按时间lyfkaqu11#
如果键是单个字符,也可以使用以下方法来拆分具有多个分隔符的字符串:
res
将包含["01", "02", "03"]
如果任何人知道任何一种特殊的语法来扩展这种方法到每个键多个字符,欢迎您提出建议并改进这个答案
92vpleto2#
Swift 4.2更新到@vir us的答案:
jtw3ybtb3#
这不是很有效,但它应该做的工作:
或者,如果你想用字典的形式:
对于Swift 2:
zsohkypk4#
Swift 5:
它是用来装漂亮整洁的代码的,如果你需要高效的东西,就不要用它
at0kjp5o5#
Swift 2向前兼容
使用正则表达式:
结果:
["KEY3": "subKey1=value&subkey3=value", "KEY2": "subkey1=value&subkey2=value", "KEY1": "subKey1=value&subkey2=value"]
1szpjjfi6#
你可以用正则表达式来实现。下面的代码片段有点笨拙,也不是真正的故障安全,但它应该能给予你一个想法。
dict
的最终值为goucqfw67#
Swift提供了一个new function split here: