Я анализировал некоторые файлы Excel, предоставленные отделом контента, и иногда замечал, что две одинаковые строки не равны. Буквально я вижу в отладчике:

String s1 = ...;// "some string"
String s2 = ...;// "some string"
s1.equals(s1) -> false

изучив содержимое строки, я заметил, что в первой строке есть обычные пробелы между словами, а во второй - NBSP (неразрывный пробел). Итак, мне пришлось не только обрезать все входящие пользовательские строки, но и заменить nbsp на обычные пробелы:

str1 = str1.replace("\u00a0"," ");

где   - это число.

И итог этой истории таков: никогда не доверяйте данным пользователей. Обрежьте его, замените все недопустимые символы, проверьте наличие пробелов.