怎样把   string aa="BLUE,25,1\r\nRED,34,1\r\nYELLOW,4,1"
          转换为
         string a1="BLUE,RED,YELLOW"
        string a2="25,34,4"
        string a3="1,1,1"还有就是判断aa都是这样的格式

解决方案 »

  1.   

    try...string aa = "BLUE,25,1\r\nRED,34,1\r\nYELLOW,4,1";
    string[] result = aa.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
    foreach (string s in result)
    {
        richTextBox2.Text += s + "\n";
    }什么叫这样的格式,只给一个实例没法说你的字符串符合什么样的规律
    哪些是变的,哪些是你要求不变的,说不明白就多给几个实例
      

  2.   

    下面写了一个方法,关于验证部分,由于你的字符串规则没有说明,需要进一步调整,返回结果就是你想要的字符串数组,private static string [] Format() 
            {
                string aa = "BLUE,25,1\r\nRED,34,1\r\nYELLOW,4,1";
                //string aa = "BLUE,25,1\r\n";
                //string pattern = @"^((BLUE)|(RED)|(YELLOW)),\d+,\d+\r\n$"; 
                string pattern = @"^(((BLUE)|(RED)|(YELLOW)),\d+,\d+\r\n){2}((BLUE)|(RED)|(YELLOW)),\d+,\d+$";  
                Regex regex = new Regex(pattern, RegexOptions.IgnoreCase);
                if (regex.IsMatch(aa) == false) 
                {
                    return null;//不匹配
                }
                string[] result = aa.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
                string [] newResult = new string [3];
                for (int i=0,j=0;i < result.Length;i++,j++)
                {
                    string[] items = result[i].Split(',');
                    if (i == 0)
                    {
                        newResult[0] = items[0];
                        newResult[1] = items[1];
                        newResult[2] = items[2];                }
                    else 
                    {
                        newResult[0] = newResult[0] +","+ items[0];
                        newResult[1] = newResult[1] + "," + items[1];
                        newResult[2] = newResult[2] + "," + items[2];
                    }
                }
                return newResult;
            }
      

  3.   

    不受字符串中字段多少的限制!
      private void go_Click(object sender, EventArgs e)
            {
                string AA = "BLUE,25,1,a\r\nRED,34,1,a\r\nYELLOW,4,1,a\r\nRED,34,1,a\r\nYELLOW,4,1,a";
                string[] AAlist = AA.Split(new string[]{"\r\n"},StringSplitOptions.RemoveEmptyEntries);
                List<string> strlist = new List<string>();
                for (int j=0;j<AAlist.Length ;j++)
                {
                    string[] str = AAlist[j].Split(',');                
                    for (int i = 0; i < str.Length; i++)
                    {
                        if (j ==0 )
                        {
                            strlist.Add(str[i].ToString());
                        }
                        else
                        {
                            strlist[i] += "," + str[i].ToString();
                        }
                    }                
                }
                string laststring = "";
                foreach (string s in strlist)
                {
                    laststring += s + "\r\n";
                }
                this.label1.Text = laststring;
            }
      

  4.   

    我说的格式是,第一个是  字符串,然后是浮点   然后是数字
            遇到\开头的特殊转换 就删除
    string aa = "BLUE,25,1\r\nRED,34,1\r\nYELLOW,4,1";如果aa="BLUE,AA,1\r\n"就会返回错误
    如果aa="BLUE,12,1\rRED,12,1...\特殊字符 字符串,浮点,数字..."这样的格式就true
    不知明白没
      

  5.   

    谢谢楼上各位~~~~~
        那个转换的问题解决了。 还想问一个:
           string aa="blue,red,blue,red,red"
          string bb="12,12,13,13,14"
          string cc="1,1,1,1,1"
    我的意识是颜色为blue的大小为12的有1件,
              颜色为red的大小为12的有1件,
              颜色为blue的大小为13的有1件,
              颜色为red的大小为13的有1件,
              颜色为red的大小为14的有1件。然后我想把这些数据用 gridview表格绑定出来
              如:          blue        red
                  12       1          1
                  13       1          1
                  14       1          0
    aa,bb,cc的长度不固定,但是,的个数都相同····
                不知道这样可不可实现
    希望大家帮忙~~~~~~~
      

  6.   

    http://topic.csdn.net/u/20080528/10/80f44c75-d746-4dc2-8f59-5526e0eb199c.html我另外发帖子了