当前位置: 代码迷 >> ASP.NET >> 求获取下面字符串某一段效率最高的方法,该怎么处理
  详细解决方案

求获取下面字符串某一段效率最高的方法,该怎么处理

热度:3981   发布时间:2013-02-25 00:00:00.0
求获取下面字符串某一段效率最高的方法
有这样的一组字符串 

C# code
isrequest:true,layer:2,id:0


如我想获取layer的值,上面字符串的值为2,或者想获取isrequest的值,上面为true

请问有什么方法更简单效果更高,我自己先尝试写一个,用数组的方法。

C# code
public string GetValue(string args, string name)        {            string[] arr = args.Split(',');            for (int i = 0; i < arr.Length; i++)            {                string[] arr2 = arr[i].Split(':');                if (arr2[0] == name)                    return arr2[1];            }            return String.Empty;        }


------解决方案--------------------------------------------------------
这么点数据,不用考虑效率,能取出来就能
------解决方案--------------------------------------------------------
给你个正则方法:
C# code
        string s = "isrequest:true,layer:2,id:0";        string r = Regex.Match(s, @"isrequest:([^,]+)").Groups[1].Value;        Response.Write(r);
------解决方案--------------------------------------------------------
string input=@"isrequest:true,layer:2,id:0";
MatchCollection mc=Regex.Matches(input,@"(?i)(\w+):(\w+)");
Dictionary<string,string> dic=new Dictionary<string,string>();
foreach(Match m in mc)
{
dic.Add(m.Groups[1].Value,m.Groups[1].Value);
}
/*
dic中的值
isrequest true
layer 2
id 0
*/
你也可以用split以,和;分隔
------解决方案--------------------------------------------------------

string s = "isrequest:true,layer:2,id:0";
string[] ss = s.Split(new char[] { ',', ':' });
  相关解决方案