2011-01-25 137 views
1

我将2个序列化对象存储在2个文本文件中,然后我读取并将它们存储在2个不同的字符串中,并尝试比较这2个字符串,由于回车比较失败多于一次和新的行结尾的字符串之间的差异, 我怎么可以比较两个忽略空格或回车,我知道我可以压缩2个字符串并比较它们,但有没有像.net库完成,像Icomparer,我不确定这是否也适用于我。比较C#中的两个字符串

预先感谢您 太平绅士

+0

什么语言/平台? – Oded 2011-01-25 20:34:37

+0

你在用什么语言?发布您的代码。 – 2011-01-25 20:34:59

+0

我使用C#语言 – jprbest 2011-01-25 20:39:50

回答

4

如果两个值都以字符串形式存储,则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"); 
0

如果你正在读一行行,不理会代表他们之间的换行符的任何字符。 如果您希望换行,只需使用查找和替换将其转换为相同的字符即可。

+0

不,我不逐行阅读,我使用readtoend函数,因此它将整个文件存储到一个字符串中。我唯一面临的问题是在文件的末尾有时包含\ r \ n,有些则不包含,因此比较失败的原因 – jprbest 2011-01-25 20:39:04

1

一个快速解决方法是将所有'\ n'和'\ r'字符全部替换,然后进行比较。

0

你可以使用一个简单的正则表达式来消除空白并比较(或者做Phillippe说的)。但我不认为有内置的功能来做这种比较。