本人有一个字符串例如
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” , 更多的 是有一对 “?