До недавнего времени Unicode не определял версию s-sharp в верхнем регистре. Я не уверен, включает ли последняя версия Java 7 этот новый символ и обрабатывает ли он его правильно. Я предлагаю попробовать.
Причина, по которой str.toLowerCase()
не возвращает то же самое, что и str.toUpperCase().toLowerCase()
, заключается в том, что Java заменяет ß
на SS
, но нет никакого способа вернуться назад, поэтому SS
становится ss
и сравнение терпит неудачу.
Поэтому, если вам нужно выровнять кейс, вы должны использовать str.toLowerCase()
. Если нет, тогда просто вызовет equalsIgnoreCase()
без какого-либо преобразования в верхний / нижний значения.