我将2个序列化对象存储在2个文本文件中,然后我读取它们并将其存储在2个不同的字符串中,并尝试比较这2个字符串,由于回车和新行差异,比较失败了一次以上其中一个字符串的结尾, 我怎么能比较忽略空格或回车,我知道我可以压缩2个字符串并比较它们,但是有什么类似的.net库,像Icomparer一样,我不确定这对我是否也适用
提前谢谢你 JP
答案 0 :(得分:5)
如果两个值都存储为字符串,String.Trim()
函数将处理您麻烦的空格字符,或者只是在替换空格字符时进行比较。
string a = "string comparison\r\n";
string b = "string comparison";
string c = a.Trim();
string d = b.Trim();
if (c == d)
Console.WriteLine("strings are equal");
else
Console.WriteLine("strings are not equal");
string e = a.Replace("\r\n", "");
string f = b.Replace("\r\n", "");
if (e == f)
Console.WriteLine("strings are equal");
else
Console.WriteLine("strings are not equal");
答案 1 :(得分:1)
快速解决方法是将所有'\ n'和'\ r'字符替换为空,然后进行比较。
答案 2 :(得分:0)
如果您逐行阅读,只需忽略代表它们之间换行符的任何字符。 如果您希望换行,只需使用查找和替换转换为相同的字符。
答案 3 :(得分:0)
您可以使用简单的正则表达式来消除空白并进行比较(或做Phillippe所说的)。但我不认为有这种比较的内置函数。