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)
我怀疑这就是问题所在:
string fileContent = File.ReadAllText(FilePath);
string[] integerStrings = fileContent.Split(new char[] { ''n' }, StringSplitOptions.RemoveEmptyEntries);
Windows上的换行符是"'r'n"
-所以你的分划中的每一行都将以'r
结束。解决这个问题的最简单方法是将这两行替换为:
string[] integerStrings = File.ReadAllLines(FilePath);
如果您确定您的日期时间格式,并且字符串是正确的,您可以通过Equals
或Compare
比较两个字符串。linux中的行结束字符是'n
(换行),windows是'r
(回车),两者的行结束字符都是'r'n
,因此您应该使用这些字符分隔行或逐行读取文件。