Сравните две строки в C # - PullRequest
       13

Сравните две строки в C #

1 голос
/ 25 января 2011

Я сохраняю 2 сериализованных объекта в 2 текстовых файлах, затем читаю оба и сохраняю их в 2 разных строках, и пытаюсь сравнить эти 2 строки, сравнение не удалось более одного раза из-за возврата каретки и разницы новой строки в конец одной строки, как я могу сравнить оба с игнорированием пробелов или возвратом каретки, я знаю, что могу сжать 2 строки и сравнить их, но есть ли что-то подобное, сделанное библиотекой .net, Как и Icomparer, я не уверен, будет ли это работать для меня .

спасибо заранее Jp

Ответы [ 4 ]

5 голосов
/ 25 января 2011

Если оба значения хранятся в виде строк, функция 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 голос
/ 25 января 2011

Быстрый обходной путь - заменить все символы '\ n' и '\ r' на ничто, а затем сравнить.

0 голосов
/ 25 января 2011

Вы можете использовать простое регулярное выражение, которое может устранить пробелы и сравнить (или сделать то, что сказал Филипп)Но я не думаю, что есть встроенная функция для такого сравнения.

0 голосов
/ 25 января 2011

Если вы читаете построчно, просто игнорируйте любые символы, которые представляют разрывы строк между ними. Если вы ожидаете разрывы строк, просто преобразуйте их в идентичные символы, используя поиск и замену.

...