2010-04-20 84 views
0

这里是我的文本文件的内容,其中包含一个名称,如“output1”后面跟着一系列数字,“output2”后面跟着一系列数字等等,由一个空格分隔......我想提取每个输出的最后一个值。我该怎么做呢? 。也就是说,我想提取“输出1”的值(即之前“输出2”的值。)如下图所示29.933215和“输出2”的文本文件379.983559我如何提取每个输出的最后一个值?

  • 内容的值:

OUTPUT1 30.000000 29.999969 29.999907 29.999783 29.999535 29.999039 29.998047 29.996063 29.992133 29.988202 29.984273 29.980343 29.976414 29.972485 29.968556 29.964628 29.960700 29.956773 29.952846 29.948919 29.944992 29.941066 29.937140 29.933215 OUTPUT2 380.000000 379.999990 379.999970 379.999930 379.999850 379.999691 379.999372 379.998734 379.997469 379.996204 379.994940 379.993675 ​​379.992411 379.991146 379.989882 379.9886 17 379.987353 379.986088 379.984824 379.983559 OUTPUT3 1.761964 1.761964 1.761964 1.761964 1.761964 1.761964 1.761964 1.761964 1.761963 1.761963 1.761963 1.761963 1.761963 1.761963 1.761963 1.761963 1.761962 1.761962 1.761962 1.761962 1.761961 1.761961 1.761961 1.761960

+0

是否outputX始终以新行开始? – 2010-04-20 08:51:33

回答

0
 Dictionary<string, double> dic = new Dictionary<string,double>(); 
    string[] items = str.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); 
    string lastOutput = ""; 
    for(int index = 0; index < items.Length; index++) 
    { 
     if(items[index].Contains("output")) 
     { 
      if(lastOutput.Length > 0 && index > 0) 
      { 
       dic.Add(lastOutput, double.Parse(items[index - 1])); 
      } 
      lastOutput = items[index]; 
     } 
    } 
    dic.Add(lastOutput, double.Parse(items[items.Length-1])); 
2

使用的StreamReader的ReadToEnd的方法。这将返回一个由您的数据组成的字符串。拆分字符串并将其存储到数组中。我想你可以从那里出发。

+0

+1不适合用勺子给程序员提供应该很容易做的代码。 – 2010-04-20 09:08:51

相关问题