我收到这样一个字符串“QN=20040516010101001;ST=32;CN=1072;PW=123456;MN=88888
880000001;Flag=3;CP=&&PW=654321&&
”,我现在要通过某种方法将字符串变成:
tag:QN value:20040516010101001
tag:ST value:ST
tag:CN value:1072
tag:PW value:123456
tag:MN value:88888880000001
tag:Flag value:3
tag:CP value:=&&PW=654321&&
跟HASH表一样。请大家指点一下,要简单点,不要用substring一点一点截取

解决方案 »

  1.   

    假设你那上面 的字符串是 str
    str = "tag:"+str.Replace(";","<br>tag:");
      

  2.   

    string s = "QN=20040516010101001;ST=32;CN=1072;PW=123456;MN=88888 
    880000001;Flag=3;CP=&&PW=654321&&";string[] s1 = s.split(';');
    string[] s2;
    NameValueCollection nvc = new NameValueCollection();
    foreach(string str in s1)
    {
    s2 = str.split('=');
    nvc.Add(s2[0], s2[1]);
    }
      

  3.   

    直接两次split就可以了,第一次按";"来split开每一个键值对,第二次用"="来split开键与值。你喜欢用正则表达式也可以,"(.*?)=(.*?);"就能匹配一个键值对。
      

  4.   

    happycharles的办法只解决的大部分问题,只是还有一点小小的问题 
    大家看看CP的值应该为&&PW=654321&& 
    如果用s2 = str.split('=');那么会得到s2[0]值为CP,s2[1]值为&&PW,s2[2]值为654321&&