【问题标题】:C# How to comparing two string?C#如何比较两个字符串?
【发布时间】:2016-07-04 18:33:06
【问题描述】:

我想比较两个字符串。第一个来自 dateTimePicker,第二个来自文件。

string firtsdate = dateTimePicker1.Value.ToString("yyyy-MM-dd");  
string seconddate = dateTimePicker2.Value.ToString("yyyy-MM-dd"); 

string FilePath = path;

string fileContent = File.ReadAllText(FilePath);
string[] integerStrings = fileContent.Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);

int count = 0;

for (int n = 0; n < integerStrings.Length;)            
{
    count = integerStrings[n].Length;               
    //Console.Write(count + "\n");
    count--;                                         
    if (count > 2)                                  
    {
        string datastart;
        string dataend;

        if (integerStrings[n] == firtsdate)
        {
            datastart = integerStrings[n];
            Console.Write(datastart);
            dataend = (DateTime.Parse(datastart).AddDays(1)).ToShortDateString();
            Console.Write(dataend + "\n");
        }
        else
        {
            n = n + 7;
        }
    }
}

文件如下所示:

  • 2016-07-01
  • 2016-07-02
  • 2016-07-06
  • ...

问题是他们不想比较两个相同的值,例如 2016-07-02 == 2016-07-02(来自文件)。

【问题讨论】:

标签: c#


【解决方案1】:

我怀疑这是问题所在:

string fileContent = File.ReadAllText(FilePath);
string[] integerStrings = fileContent.Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);

Windows 上的换行符是 "\r\n" - 因此拆分中的每一行都将以 \r 结尾。解决此问题的最简单方法是将这两行替换为:

string[] integerStrings = File.ReadAllLines(FilePath);

【讨论】:

    【解决方案2】:

    如果您确定日期时间格式并且字符串正确,您可以通过EqualsCompare 比较两个字符串。 linux中的行尾字符是\n(换行),windows是\r(回车),\r\n两者都是,所以你应该用这些字符分割行或逐行读取文件。

    【讨论】:

      猜你喜欢
      • 2021-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-29
      • 1970-01-01
      • 2016-01-04
      相关资源
      最近更新 更多