将字符串拆分为子数组

时间:2019-03-28 12:59:09

标签: ios swift

这个问题与我的Previous question

有关

我正在用Swift 4.2编写iOS应用

来自服务器的响应是一个字符串,其值由竖线字符“”分隔。它包含许多用“ $”分隔的值行。我想将其拆分为子数组。

行用“ $ ”分隔,元素用“ | ”分隔

响应:

示例:“ 001 |苹果|红色$ 002 |香蕉|黄色$ 003 |葡萄|紫色$”

预期输出:

[[001,“苹果”,“红色”],[002,“香蕉”,“黄色”],[003,“葡萄”,“紫色”]]

2 个答案:

答案 0 :(得分:2)

var str = "001|apple|red$002|banana|yellow$003|grapes|purple$"
var arr = [[String]]()
for item in str.components(separatedBy: "$")
{
    if item.count > 0
    {
        arr.append(item.components(separatedBy: "|"))
    }
}
print(arr)

enter image description here

答案 1 :(得分:1)

此代码应执行您想要的操作:

let src = "001|apple|red$002|banana|yellow$003|grapes|purple$"
let result = src.split(separator: "$").map { $0.split(separator: "|").map(String.init) }
// result = [["001", "apple", "red"], ["002", "banana", "yellow"], ["003", "grapes", "purple"]]

如果可以确定子数组的类型为.map(String.init),则可以在最后一个闭包中删除[String.SubSequence]