【发布时间】:2014-02-20 18:26:09
【问题描述】:
我有一堆我想解析的字符串,它们看起来像这样:
"1001, 1003, 1005-1010"
"1015"
"900-903"
"200, 202-209, 211-220"
这些字符串有时只是一个整数,有时是多个以逗号分隔,有时是一个范围,后两者可以以任意顺序同时出现在一个字符串中。
我想做的是创建一个函数,该函数接收字符串并通过解析字符串返回整数集合。所以例如第一个字符串应该返回:
[1001, 1003, 1005, 1006, 1007, 1008, 1009, 1010]
在 .NET 4.0 中有哪些聪明的方法可以做到这一点?
【问题讨论】:
-
到目前为止你尝试过什么?一个简单的方法是,用“,”分割,检查令牌是否包含“-”,如果是,循环遍历其边界并将它们添加到最终数组中,否则添加令牌。然后,只需重新排序数组。
-
@RodrigoSilva 我尝试了一种方法,其中我有两个指针,一个一直持续到找到'-'或','并解析第一个和第二个指针之间的内容,然后将它们都向上移动在“-”的情况下,会循环添加范围内的所有内容。但是,我无法避免超出索引范围并决定何时出现问题并在出现异常时抛出异常的情况。
标签: c# .net string list parsing