我有一个字符串:字符串数组
id0:xxxxx:id0-value:xxxxx:id1:xxxxxxxx:id1-value:xxxxx:id3:xxxxxxxx:id3-value:xxx
我只需要从字符串到数组IDX-value的值。
我该如何实现它?
我有一个字符串:字符串数组
id0:xxxxx:id0-value:xxxxx:id1:xxxxxxxx:id1-value:xxxxx:id3:xxxxxxxx:id3-value:xxx
我只需要从字符串到数组IDX-value的值。
我该如何实现它?
最简单的方法,该值是在位置(4倍 - 1):
var list = input.Split(':');
var outputs = new List<string>();
for (int index = 0; index < list.Count(); index++)
{
if (index % 4 == 3)
outputs.Add(list.ElementAt(index));
}
使用正则表达式(一种正则表达式:x之后出现的正则表达式)进行拆分,然后使用冒号:
进行拆分,并使用第一个索引作为Dictionary Key和第二个索引作为Dictionary值。
我不推荐RegEx的原因是因为数据看起来是在一个设定的模式中RegEx编译和使用是昂贵的bo相比于只分割字符串而言,CPU和内存方面更为出色。如果数据不是清晰的模式,那么正则表达式就是要走的路。 – 2012-08-16 03:37:53
使用String.Split()
http://msdn.microsoft.com/en-us/library/system.string.split.aspx
String myString = "id0:xxxxx:id0-value:xxxxx:id1:xxxxxxxx:id1-value:xxxxx:id3:xxxxxxxx:id3-value:xxx";
String[] tokens = myString.Split(new Char[] {':'});
令牌数组将包含{ “ID0”, “XXXXX”, “ID0-值”, “XXXXX”, “ID1”, “xxxxxxxx”,“id1-value”,“xxxxx”,“id3”,“xxxxxxxx”,“d3-value”,“xxx”}
第二种可能性是使用String.IndexOf()和String。子串()。
http://msdn.microsoft.com/en-us/library/5xkyx09y http://msdn.microsoft.com/en-us/library/aka44szs
诠释开始= 0; ArrayList令牌; ((start = myString.IndexOf(“ - value:”,start))> -1){ ArrayList.Add(myString.Substring(start + 6,myString.IndexOf(“:”,start + 7); 启动+ = 6; //跳转过去我们刚发现 }
家庭作业 – dthorpe 2012-08-16 03:27:40
尝试新鲜事物或完全? – nunespascal 2012-08-16 03:27:42
一些正则表达式的好地方!一个字...匹配集合 – CoderMarkus 2012-08-16 03:28:48