字符串 能否分别按照逗号分隔转换为一个数组?

tsyj221 2017-04-14 04:04:21
1."Data Management","All Regions","Standard IO - FileReadOperationUnits(in10,000s)","0.016000","0","0.000000"
2."","{""ImageType"":"""",""ServiceType"":"""",""VMName"":""partnervmscaleset_2"",""UsageType"":""DataTrOut""}","",""

上面连个字符串 能否分别按照逗号分隔转换为一个数组,
其中"Standard IO - FileReadOperationUnits(in10,000s)",和"{""ImageType"":"""",""ServiceType"":"""",""VMName"":""partnervmscaleset_2"",""UsageType"":""DataTrOut""}"分别是是数组的一个元素
请教各位高手了
...全文
308 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2017-04-14
  • 打赏
  • 举报
回复
自己处理也不难
        static void Main(string[] args)
        {
            var a = File.ReadAllLines("1.txt"); //假定你那两行数据被保存在 1.txt 中
            foreach (var x in a)
            {
                Console.WriteLine(x);
                getcsv(x);
                Console.WriteLine("");
            }
        }
        static void getcsv(string str)
        {
            var flag = 0;
            var st = new StringBuilder();
            foreach (var c in str)
            {
                st.Append(c);
                switch (c)
                {
                    case '"':
                        flag++;
                        break;
                    case ',':
                        if (flag % 2 == 0)
                        {
                            Console.WriteLine(st.ToString());
                            st = new StringBuilder();
                        }
                        break;
                }
            }
            if (st.Length > 0) Console.WriteLine(st.ToString());
        }
stherix 2017-04-14
  • 打赏
  • 举报
回复
上面stack.Peek() == ')'应该改成 (
stherix 2017-04-14
  • 打赏
  • 举报
回复
不能简单用split分割 需要处理大括号和括号

string aaa="xxxxx";
		Stack<char> stack = new Stack<char>();
		List<string> result = new List<string>();
		int lastPos = 0;
		for (int i = 0; i < aaa.Length; i++)
		{
			if (aaa[i] == '{' || aaa[i] == '(')
				stack.Push(aaa[i]);
			if (aaa[i] == ',' && stack.Count == 0)
			{
				result.Add(aaa.Substring(lastPos, i - lastPos));
				lastPos = i + 1;
			}
			if (aaa[i] == '}' && stack.Count > 0 && stack.Peek() == '{')
				stack.Pop();
			if (aaa[i] == ')' && stack.Count > 0 && stack.Peek() == ')')
				stack.Pop();
		}
		if (lastPos < aaa.Length)
			result.Add(aaa.Substring(lastPos));
xuzuning 2017-04-14
  • 打赏
  • 举报
回复
很奇怪! csv 格式是微软发明的,但 C# 竟然不提供读取方法
夏天的枫 2017-04-14
  • 打赏
  • 举报
回复
string.Spit(',');
stherix 2017-04-14
  • 打赏
  • 举报
回复
c#库里没有现成的 不过你弄一个括号栈 也只需要一次遍历 就能把这个字符串按照你要的格式分割开来

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧