本人有一个字符串例如
string str=”A,B,“AA,BB,CC”,C,D”;
本人呢需要按照(,) 逗号来截取这个很容易 但是呢 遇到(“) 时候要以(“)来截取
也就是说本人需要获得以下数组
A
B
AA,BB,CC
C
D
AA,BB,CC是在(“)里面的就不按照(,)逗号来了 (“)外面的还是按照(,)逗号来截取
这个需求怎么样实现呢?
string str=”A,B,“AA,BB,CC”,C,D”;
本人呢需要按照(,) 逗号来截取这个很容易 但是呢 遇到(“) 时候要以(“)来截取
也就是说本人需要获得以下数组
A
B
AA,BB,CC
C
D
AA,BB,CC是在(“)里面的就不按照(,)逗号来了 (“)外面的还是按照(,)逗号来截取
这个需求怎么样实现呢?
解决方案:18分
最基本的算法是最简单的
static void Main(string[] args) { string str = "A,B,"AA,BB,CC",C,D"; var res = new List<string>(); var t = ""; var skip = 0; for (var i = 0; i < str.Length; i++) { if (skip == 0 && str[i] == "","") { res.Add(t); t = ""; continue; } if (str[i] == """"") { skip = (skip + 1) % 2; } t += str[i]; } foreach (var x in res) { Console.WriteLine(x); } Console.ReadKey(); }
解决方案:2分
你这字符串 一定是 “A,B,”AA,BB,CC”,C,D”? 不会有 “A,B,”AA,BB,CC”,C,D,e,f,”gg,hhh,ii”,j,k” , 更多的 是有一对 “?