将“[{a},{b},{c}]”拆分为字符串数组“a,b,c”的最佳方法是什么?

时间:2013-01-08 11:50:39

标签: c#

最佳 将“{{a},{b},{c}]”拆分为string数组{{1}的方法是什么?例如:

t

将输入字符串视为逐字,方括号和大括号实际存在。

更新 这是我需要拆分的更具体的样本

t[0] == "a"
t[1] == "b"
t[2] == "c"

3 个答案:

答案 0 :(得分:6)

使用String.Split删除所有不需要的字符。

"[{a},{b},{c}]".Split(new char[] {'[', ']', '{', '}', ','}, StringSplitOptions.RemoveEmptyEntries);

编辑:在OP的编辑之后,@ Daniel的答案更适合维护子串的完整性。

答案 1 :(得分:4)

var t = s.Trim('[', ']').Split(',').Select(x => x.Trim('{', '}')).ToArray();

这将首先删除外部括号,用逗号分隔,并在结果的开头和结尾删除花括号。

要覆盖嵌入的特殊字符(如逗号或花括号),您需要转义它们,因为否则会存在可以多种方式拆分的不明确的字符串。

答案 2 :(得分:0)

这是工作示例:

string str = "[{a},{b},{c}]";
string[] t = str.Split(new char[] { '[', ']', '{', '}', ',' },
             StringSplitOptions.RemoveEmptyEntries)
             .ToArray();

输出:

t[0] == "a"
t[1] == "b"
t[2] == "c"