c#如何比较两个字符串

本文关键字:两个 字符串 比较 何比较 | 更新日期: 2023-09-27 17:54:20

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

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 (from file)

c#如何比较两个字符串

我怀疑这就是问题所在:

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

Windows上的换行符是"'r'n" -所以你的分划中的每一行都将以'r结束。解决这个问题的最简单方法是将这两行替换为:

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

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