Greendao - Сравнение свойств строки должно выполняться без учета регистра

Как сделать нечувствительным к регистру сравнение строк без использования toLowercase/toUppercase манипуляций с строками

QueryBuilder qb = mPropertyModelDao.queryBuilder();
qb.where(PropertyModelDao.Properties.City.eq(cityCode));

1 ответ

Вы не можете изменить поведение String.compareTo или же String.equals,

Несколько идей для того, чтобы "сделать это по-другому":

  • Вы можете преобразовать значение свойства (передаваемое установщиком или возвращаемое получателем) во все строчные или прописные буквы.

  • Вы могли бы получить ваши свойства возвращать значения свойств в пользовательском CharSequence это делает сравнения без учета регистра.

  • Вы можете сделать сравнение, используя Comparator,


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

Другие вопросы по тегам