如何仅替换文件中的某个模式中的某些某些数字

时间:2015-12-03 05:14:56

标签: c#

我在C#中有一个已排序的词典,其中的日期加入字符串,如" NA"," WD"," LD"," HD& #34 ;.它看起来像。

10/01/2015 NA

10/02/2015 NA

10/03/2015 NA

10/04/2015 LD

10/05/2015 WD

10/06/2015 WD

10/07/2015 HD

10/08/2015 WD

10/09/2015 LD

10/10/2015 HD

10/11/2015 WD

10/12/2015 HD

10/13/2015 HD

2015/10/14 NA

2015/10/15 NA

2015/10/16 WD

2015/10/17 HD

2015/10/18 WD

现在,处理完这些信息后,我的结果如下。

10/01 / 2015NA 3

10/02 / 2015NA 3

10/03 / 2015NA 3

10/04 / 2015LD 3

10/05 / 2015WD 2

10/06 / 2015WD 2

10/07 / 2015HD 1 //我应该把它改为2。

10/08 / 2015WD 2

10/09 / 2015LD 3

10/10 / 2015HD 1

10/11 / 2015WD 2

10/12 / 2015HD 1 //没有变化。因为它不会出现在2之间。

10/13 / 2015HD 1 //没有变化。因为它不会出现在2之间。

10/14 / 2015NA 3

10/15 / 2015NA 3

10/16 / 2015WD 2

10/17 / 2015HD 1 //我应该把它改为2。

10/18 / 2015WD 2

我需要更改2之间的任何数字。我尽力解决它。但似乎没有什么可以解决的。经过将近6个小时的努力,我绝望了。由于这是编程,因此肯定有一个解决方案,但这使我望而却步。

请有人指导我。

1 个答案:

答案 0 :(得分:0)

这对您有用吗?

SortedDictionary<string, string> Dates = new SortedDictionary<string, string>();
Dates.Add("1", "10/06/2015WD 2  ");
Dates.Add("2", "10/07/2015HD 1");
Dates.Add("3", "10/08/2015WD 2 ");
for(int i = 0; i < Dates.Count; i++)
 {
   string Key = Dates.ElementAt(i).Key;
   string CurrentValue = Dates.ElementAt(i).Value.Trim();
   string CurrentValueLastChar = CurrentValue.Substring(CurrentValue.Length - 1, 1);
   if (i - 1 != -1 && i + 1 < Dates.Count)
    {
      string PreviousValue = Dates.ElementAt(i - 1).Value.Trim();
      string NextValue = Dates.ElementAt(i + 1).Value.Trim();
      string PreviousValueLastChar = PreviousValue.Substring(PreviousValue.Length - 1, 1);
      string NextValueLastChar = NextValue.Substring(NextValue.Length - 1, 1);
      if (PreviousValueLastChar == NextValueLastChar)
           Dates[Key] = (Dates[Key].Remove(Dates[Key].Length - 1)) + PreviousValueLastChar;

    }                

 }