2011-01-25 111 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說的)。但我不認爲有內置的功能來做這種比較。