Arrays 转换;0-4,6,7,9-12“;列出

Arrays 转换;0-4,6,7,9-12“;列出,arrays,Arrays,是否有一个简单的示例或函数将此字符串转换为列表(0,1,2,3,4,6,7,9,10,11,12)。我更喜欢Java或Swift,但我什么都愿意。我知道我可以手动拆分字符串并手动执行此操作,但我只是希望不要在这一条上重新发明一些可以正常工作的东西 以0-4,6,7,9-12开头的不是字符串,因为它没有被“.”包围。还有,结果数组应该是什么?是否要将“0-4”转换为0,1,2,3,4?查看字符串的split命令,并使用逗号作为分隔符。首先按“,”拆分,然后对每个元素按“-”拆分,如果有两个结果,则

是否有一个简单的示例或函数将此字符串转换为列表(0,1,2,3,4,6,7,9,10,11,12)。我更喜欢Java或Swift,但我什么都愿意。我知道我可以手动拆分字符串并手动执行此操作,但我只是希望不要在这一条上重新发明一些可以正常工作的东西

0-4,6,7,9-12开头的不是字符串,因为它没有被“.”包围。还有,结果数组应该是什么?是否要将“0-4”转换为
0,1,2,3,4
?查看字符串的
split
命令,并使用逗号作为分隔符。

首先按“,”拆分,然后对每个元素按“-”拆分,如果有两个结果,则执行一次for。例如:

(int i = splitted[0]; i < splitted[1] + 1; i++)
(int i=splitted[0];i
这里有一个快速而肮脏的攻击:

import Foundation

let input = "0-4,6,7,9-12"

func expand(string: String) -> [Int] {
    return input
        .components(separatedBy: ",")
        .flatMap { segment -> [Int] in 
            if segment.contains("-") {
                let parts = segment.components(separatedBy: "-").map { Int($0)! }
                let (min, max) = (parts[0], parts[1])
                return Array(min...max)
            }
            else {
                return [Int(segment)!] // TODO: is error handling necessary?
            }
        }
}

print(expand(string: input))

修剪第一个和最后一个括号,在
上拆分,然后将生成的字符串组件映射到IntI。我想我需要更清楚一点,我想把这个“0-4,6,7,9-12”转换成这个0,1,2,3,4,6,7,9,10,11,12好的。。。修剪第一个和最后一个括号,在
上拆分,
,通过检查是否有
-
,展开
-
,并将字符串转换为整数来平面映射生成的字符串组件。这就是我所想的。我只是希望有些东西存在,而不需要我自己来解析。哦,好吧。。。