什么是拆分“;{a},{b},{c}]”;转换成字符串阵列“”;a、 b、c”;

本文关键字:字符串 阵列 拆分 什么 转换 | 更新日期: 2023-09-27 17:50:56

将"[{a},{b},{c}]"拆分为string阵列t的最佳方式是什么,例如:

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

将输入字符串视为逐字逐句的,方括号和花括号确实存在。

更新:以下是我需要拆分的更具体的示例

[{ pk:"4",id:"4",cb_program_id:"2.0000",DataSource:"1",Status:"0",CutoffDate:"15/10/2012 14:05:04" }, 
{ pk:"3",id:"3",cb_program_id:"2.0000",DataSource:"1",Status:"0",CutoffDate:"15/10/2012 14:05:02" }, ... ]

什么是拆分“;{a},{b},{c}]”;转换成字符串阵列“”;a、 b、c”;

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

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

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

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

这将首先删除由逗号分隔的外括号,并删除结果开头和结尾的大括号。

要覆盖逗号或大括号等嵌入的特殊字符,您需要对它们进行转义,否则将存在可能以多种方式拆分的不明确字符串。

这是一个工作示例:

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

输出:

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