解析字符串并为变量分配特定值

时间:2011-12-14 06:50:14

标签: c# .net string

API返回字符串,如下所示:"error=OK\neta=2 - 3 Days\nprice=24.18"

除了使用带有start/stop索引的子字符串和/或通过分隔字符将所有内容拆分成单词数组之外,我可以选择"nprice="之后的值以及"neta="之后的值(之前的“\” “)”马上离开?

1 个答案:

答案 0 :(得分:3)

您可以使用yourString.Split(new[] { @"\n" }, StringSplitOptions.None)获取子字符串列表。

但是,我倾向于将其变成字典:

var yourString = @"error=OK\neta=2 - 3 Days\nprice=24.18";
var lookup = (from sub in yourString.Split(new[] { @"\n" }, StringSplitOptions.None)
              let parts = sub.Split(new[] { '=' }, 2)
              select parts).ToDictionary(p => p[0], p => p[1]);

然后你会像这样使用它:

 var error = lookup["error"];
 var eta = lookup["eta"];
 var price = Convert.ToDecimal(lookup["price"]);

 Console.WriteLine("Error Code: {0},  ETA: {1},  Price: {2:C}", error, eta, price);