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

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

richersoon

Ответов: 1

Ответы (1)

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

Пара идей "по-другому":

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

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

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


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

2022 WebDevInsider