簡體   English   中英

將“ [[a],{b},{c}]”拆分為字符串數組“ a,b,c”的最佳方法是什么

[英]What is the best way to split “[{a},{b},{c}]” into a string array “a,b,c”

將“ [[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" }, ... ]

使用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"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM