Вы также можете использовать метод compareTo()
для сравнения двух строк. Если результат compareTo равен 0, то две строки равны, в противном случае сравниваемые строки не равны.
==
сравнивает ссылки и не сравнивает фактические строки. Если вы создали каждую строку, используя new String(somestring).intern()
, вы можете использовать оператор ==
для сравнения двух строк, в противном случае могут использоваться только методы equals () или compareTo.
Если бы это был я, то я 'нормализовал' бы строки, когда я 'втянул их'; вероятно, со строкой. Замена (). Затем Вы не должны будете изменять свои сравнения больше нигде.
Править: Mark, это - жесткое. Действительно до Вас или Вас клиенты, относительно того, что является 'нормализованной' строкой. Я был в аналогичной ситуации, где клиент потребовал что строки как:
I have 4 apples. I have four apples.
были на самом деле равны. Вы, возможно, должны разделить нормализаторы для различных ситуаций. Так или иначе я все еще сделал бы нормализацию после извлечения исходных строк.
Я прошел через много боли, чтобы найти этот простой ответ. В приведенном ниже коде используется регулярное выражение для замены неразрывных пробелов нормальными.
string cellText = "String with non breaking spaces.";
cellText = Regex.Replace(cellText, @"\u00A0", " ");
Надеюсь, это поможет, Дэн