我將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