文件里面有如下文本:name="hello" sex="man" age="12" 
lable="234" permissions="high" 现在已经将文件读入到一个String 变量中。
我想把name、sex、age、lable、permissions的值分别赋值给别的String变量这个应该怎么实现呢

解决方案 »

  1.   

    用键值对的方法来实现 StringBuilder sb=new StringBuilder;
      var index=strInfo.IndexOf("=");
      var key=strInfo.Substring(0,index);
      if(key=="name")
      sb.AppendLine(key+"="+变量值)
      

  2.   

     string strinfo = @"name=hello sex=man age=12 lable=234 permissions=high";
                string[] strs = strinfo.Split(' ');
                Dictionary<string, string> stritem = new Dictionary<string, string>();
                foreach (var str in strs)
                {
                    string[] strsplits = str.Split('=');
                    stritem[strsplits[0]] = strsplits[1];
                }            foreach (var key in stritem.Keys)
                {
                    Console.WriteLine(key + "=" + stritem[key]);
                }
      

  3.   

    只能截取字符串了,楼上的几个方法都挺好的
    但我不明白的是既然你想保存,在存为txt的时候就应该有些规律吧,而不是这样就是一个字符串的读取出来
    可以存成json对象字符串或者xml或者用csv文件,感觉比txt好些
      

  4.   

    字符串的分隔截取,这样的执行效率很低,建议使用xml这样有规律的文件
      

  5.   

    你还要配对啊,那当我没说,Dictionary试试
      

  6.   

    用正则试试            string s="name=\"hello\" sex=\"man\" age=\"12\" lable=\"234\" permissions=\"high\"";            System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex(@"(.*?)=[""](.*?)[""]");
                System.Text.RegularExpressions.MatchCollection mc= r.Matches(s);
                foreach (System.Text.RegularExpressions.Match item in mc)
                {
                    System.Diagnostics.Debug.WriteLine(string.Format("Name:{0}, Value:{1}", item.Groups[1].Value, item.Groups[2].Value));
                }
    结果Name: sex, Value:man
    Name: age, Value:12
    Name: lable, Value:234
    Name: permissions, Value:high
      

  7.   

    把你需要取的那部分,就是从name=到high"这部分想办法单独取出来,然后再处理吧