我想比较两个字符串。第一个来自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-02 == 2016-07-02(来自文件)。
答案 0 :(得分:3)
我怀疑这是问题所在:
string fileContent = File.ReadAllText(FilePath);
string[] integerStrings = fileContent.Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);
Windows上的换行符为"\r\n"
- 因此,拆分中的每一行都将以\r
结尾。解决这个问题的最简单方法是用以下代码替换这两行:
string[] integerStrings = File.ReadAllLines(FilePath);
答案 1 :(得分:0)
如果您确定日期时间格式并且字符串正确,则可以按Equals
或Compare
比较2个字符串。
linux中的行尾字符为\n
(换行符),窗口为\r
(回车),两者为\r\n
,因此您应该按这些字符拆分行或读取文件逐行。