Как отфильтровать Recycleview, игнорируя регистр?

Когда вы печатаете строку, вы получаете вывод метода __str__ объекта - в этом случае строка без кавычек. Метод __str__ списка отличается, он создает строку, содержащую открытие и закрытие [], и строку, создаваемую методом __repr__ для каждого объекта, содержащегося внутри. То, что вы видите, - это разница между __str__ и __repr__.

Вместо этого вы можете создать свою собственную строку:

print '[' + ','.join("'" + str(x) + "'" for x in s) + ']'

Эта версия должна работать как с Unicode, так и с байтовые строки в Python 2:

print u'[' + u','.join(u"'" + unicode(x) + u"'" for x in s) + u']'
1
задан Arjun 17 January 2019 в 07:09
поделиться

3 ответа

Вы также можете преобразовать их в один и тот же случай, используя toLowerCase () или toUpperCase ():

 if (!contacts.getUid().toLowerCase().equals(firebaseUser.getUid().toLowerCase())) {
     arrayList.add(contacts);
 }
0
ответ дан Aastha Saini 17 January 2019 в 07:09
поделиться

Вы можете использовать равные Игнорировать регистр для этого ... это строковая функция для игнорирования регистра.

if (!contacts.getName().toLowerCase().contains(s.toString().toLowerCase())) // something like this..
{
    arrayList.add(contacts);
}

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

Я считаю, что вы, возможно, получаете все данные в объекте вашего класса контактов. Тогда вам просто нужно проверить введенную строку в представлении поиска в вашем методе get filter, как описано выше, и .contains проверит, присутствует ли введенная строка. или нет ... если вы хотите, вы также можете сделать .startsWith(s.toString().toLowerCase()), если вы хотите найти имя, начиная со строки, введенной в окне поиска ..

0
ответ дан Amit Jangid 17 January 2019 в 07:09
поделиться
public boolean regionMatches(boolean ignoreCase,
                             int toffset,
                             String other,
                             int ooffset,
                             int len)

ignoreCase: если true, игнорирует регистр при сравнении символов.

public static boolean containsIgnoreCase(String str, String searchStr)     {
        if(str == null || searchStr == null) return false;

        final int length = searchStr.length();
        if (length == 0)
            return true;

        for (int i = str.length() - length; i >= 0; i--) {
            if (str.regionMatches(true, i, searchStr, 0, length))
                return true;
        }
        return false;
    }
0
ответ дан JM STA.CLARA 17 January 2019 в 07:09
поделиться
Другие вопросы по тегам:

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