如何在C#中分割一些以逗号分隔的括号值?
例如:如何在C#中将"[1,2,3],[4,5]"
拆分为"1,2,3"
和"4,5"
?
答案 0 :(得分:1)
使用String.Split
方法和LINQ:
string str = "[1,2,3],[4,5]";
var res = str.Split(new[] { "],[" }, StringSplitOptions.None)
.Select(c => c.Replace("[", "").Replace("]","")).ToArray();
输入:
[1,2,3],[4,5]
输出:
1,2,3
4,5
输入:
[[1,[2,3]]],[4,[5,6],7]
输出:
1,2,3
-4,5,6,7-
答案 1 :(得分:0)
如果您正在尝试了解此问题的算法,这可能会对您有所帮助:(我使用输入测试了我的代码并且它有效。)
public static string[] Split(string s)
{
List<string> strings = new List<string>();
int index = 0;
while (index < s.Length)
{
if (s.Substring(index, 1) == "[")
{
int length = s.IndexOf("]", index + 1) - (index + 1);
string s2 = s.Substring(index + 1, length);
strings.Add(s2);
index += s2.Length + 2;
}
else index++;
}
return strings.ToArray();
}
这并不是说其他答案没用。有时linq非常有帮助。此外,我的代码仅供学习,我没有进行任何错误检查等,并假设没有嵌套的情况as you mentioned。