问一个截取字符串的难题。

.Net技术 码拜 8年前 (2016-02-01) 859次浏览
本人有一个字符串例如
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” , 更多的 是有一对 “?

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明问一个截取字符串的难题。
喜欢 (0)
[1034331897@qq.com]
分享 (0)