求获取下面字符串某一段效率最高的方法

caicaihui 2012-05-16 11:06:29
有这样的一组字符串

isrequest:true,layer:2,id:0


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

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


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;
}
...全文
151 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mabaolin 2012-05-16
  • 打赏
  • 举报
回复

string s = "isrequest:true,layer:2,id:0";
string[] ss = s.Split(new char[] { ',', ':' });
a990901370075 2012-05-16
  • 打赏
  • 举报
回复
string s="isrequest:true,layer:2,id:0";

string a=s.Split(':')[1].Split(',')[0].ToString();
string b=s.Split(':')[2].Split(',')[0].ToString();
string c=s.Split(':')[3].ToString();
手可摘星辰 2012-05-16
  • 打赏
  • 举报
回复
我还没有考虑过效率,帮顶,我看到题目我就想到了Hashtable
EnForGrass 2012-05-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

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)
{
……
[/Quote]
写错了
可以用split以,和:分隔
rybin_1987 2012-05-16
  • 打赏
  • 举报
回复
正则效率不一定高,而且你这么点数据也不必考虑效率问题。
现根据‘,’拆分,让根据‘:’拆分。
你就知道那个对应哪个了
EnForGrass 2012-05-16
  • 打赏
  • 举报
回复
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以,和;分隔
dalmeeme 2012-05-16
  • 打赏
  • 举报
回复
给你个正则方法:
		string s = "isrequest:true,layer:2,id:0";
string r = Regex.Match(s, @"isrequest:([^,]+)").Groups[1].Value;
Response.Write(r);
bonnibell 2012-05-16
  • 打赏
  • 举报
回复
要是理解正则,倒是简单,但是效率不一定高
cpio 2012-05-16
  • 打赏
  • 举报
回复
这么点数据,不用考虑效率,能取出来就能

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧