字符串问题
我现在有这样一些数据   
 string   name=John;                                                //姓名 
 string   sex=male;                                                   //性别 
 string   telephone=13645612378;            //电话          
 1.   在发送端, 
 我想把这样的一些字符串组成一个大的字符串,然后在网络上传输,每一个字符串前加上一个标记,字符串末尾加一个E。   
 比如 
 string   str1= "N "+name+ "S "+sex+ "T "+telephone+ "E "; 
 我把这样一个串在网络上由服务端传到客户端。     
 2.   在接收端 
 我收到上面这个串以后, 
 string   str2= "NJohnSmaleT13645612378 ",然后把这个串读出来,去掉标记,再分别放到a、b、c三个串中。 
 比如 
 int   n=str2.IndexOf( "N "); 
 int   s=str2.IndexOf( "S "); 
 int   t=str2.IndexOf( "T "); 
 int   e=str2.IndexOf( "E "); 
 int   length1=s-n-1; 
 int   length2=t-s-1; 
 int   length3=s-t-1;   
 string   a=str2.Substring(1,length1); 
 string   b=str2.Substring(s,length2); 
 string   c=str2.Substring(t,length3);   
 3.   现在的问题是,在发送端有可能有些项没有,比如说没有telephone这一项,那采用上面的组串就有问题,同样在接收端解串也有问题,我该怎样解决?
------解决方案--------------------网络上传输建议使用XML~~
------解决方案--------------------分两个步骤: 
 1、规划传输协议: 
    在本例中主要是解决分隔符是否会在内容中使用,如果内容中包含了分隔符,应做怎样处理?比如用\S替代S,\\替代\。 
    现在通常用XML来传递,只是会有较多的非有效数据,对传输数据冗余要求不是非常高时建议采用。 
 2、编写编码和解码程序 
    如果自己定义了协议,就需要来实现。通常会用到正则表达式。   
 当然在.net里面 
 这样的结构业可以用序列化来实现,使用会更方便些。