Сравнение строк, .NET и неразрывный пробел

Вы также можете использовать метод compareTo() для сравнения двух строк. Если результат compareTo равен 0, то две строки равны, в противном случае сравниваемые строки не равны.

== сравнивает ссылки и не сравнивает фактические строки. Если вы создали каждую строку, используя new String(somestring).intern(), вы можете использовать оператор == для сравнения двух строк, в противном случае могут использоваться только методы equals () или compareTo.

13
задан Luke Girvin 21 October 2016 в 11:27
поделиться

2 ответа

Если бы это был я, то я 'нормализовал' бы строки, когда я 'втянул их'; вероятно, со строкой. Замена (). Затем Вы не должны будете изменять свои сравнения больше нигде.

Править: Mark, это - жесткое. Действительно до Вас или Вас клиенты, относительно того, что является 'нормализованной' строкой. Я был в аналогичной ситуации, где клиент потребовал что строки как:

I have 4 apples.
I have four apples.

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

9
ответ дан 1 December 2019 в 17:42
поделиться

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

string cellText = "String with non breaking spaces.";
cellText = Regex.Replace(cellText, @"\u00A0", " ");

Надеюсь, это поможет, Дэн

36
ответ дан 1 December 2019 в 17:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: