比较C#中的两个字符串

时间:2011-01-25 20:31:51

标签: c# string compare

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

提前谢谢你 JP

4 个答案:

答案 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所说的)。但我不认为有这种比较的内置函数。