我将2个序列化对象存储在2个文本文件中,然后我读取并将它们存储在2个不同的字符串中,并尝试比较这2个字符串,由于回车比较失败多于一次和新的行结尾的字符串之间的差异, 我怎么可以比较两个忽略空格或回车,我知道我可以压缩2个字符串并比较它们,但有没有像.net库完成,像Icomparer,我不确定这是否也适用于我。比较C#中的两个字符串
预先感谢您 太平绅士
我将2个序列化对象存储在2个文本文件中,然后我读取并将它们存储在2个不同的字符串中,并尝试比较这2个字符串,由于回车比较失败多于一次和新的行结尾的字符串之间的差异, 我怎么可以比较两个忽略空格或回车,我知道我可以压缩2个字符串并比较它们,但有没有像.net库完成,像Icomparer,我不确定这是否也适用于我。比较C#中的两个字符串
预先感谢您 太平绅士
如果两个值都以字符串形式存储,则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");
如果你正在读一行行,不理会代表他们之间的换行符的任何字符。 如果您希望换行,只需使用查找和替换将其转换为相同的字符即可。
不,我不逐行阅读,我使用readtoend函数,因此它将整个文件存储到一个字符串中。我唯一面临的问题是在文件的末尾有时包含\ r \ n,有些则不包含,因此比较失败的原因 – jprbest 2011-01-25 20:39:04
一个快速解决方法是将所有'\ n'和'\ r'字符全部替换,然后进行比较。
你可以使用一个简单的正则表达式来消除空白并比较(或者做Phillippe说的)。但我不认为有内置的功能来做这种比较。
什么语言/平台? – Oded 2011-01-25 20:34:37
你在用什么语言?发布您的代码。 – 2011-01-25 20:34:59
我使用C#语言 – jprbest 2011-01-25 20:39:50