2012-01-08 2 views
3

resultString является параметром, я получаю от SQLITEAndroid сравнить строки игнорировать случай

resultString = result.getString(result.getColumnIndex(1)); 

Я хочу сравнить игнорировать случай с пользовательского ввода Ниже приведен код, который я использовать. Но это не сработает.

Например, в базе данных я сохраняю имя пользователя «Джордж» Когда я вхожу в систему, мне нужно набрать именно «Джордж». «Джордж» не работает.

Вот мой код для сравнения.

if (userName.equalsIgnoreCase(resultString)) { 
    return true; 
} 

В чем может быть проблема?

+1

Это выглядит, как она должна работать. Вы пробовали жестко кодировать тестовые примеры. Таким образом, выше вашего типа сравнения userName = "George" и resultString = "george"? Также вы можете распечатать имя пользователя и resultString перед сравнением в других случаях, чтобы убедиться, что нет лишних символов, таких как пробелы? – nmjohn

+0

Я пытался жестко кодировать, так как предлагаю и предложение «если» работает. Понятия не имею, что происходит. –

+0

, если вы уверены, что делаете все правильно, это град мари, но может ли это быть проблемой кодирования? –

ответ

0

Я был в панике и не пытался распечатать результат. Проблема заключалась в моем запросе.

String whereClause = DatabaseHelper.USER_COL + " name =?"; 

РезультатString всегда пуст, если вход не совпадает с данными.

Чтобы исправить это я следовать инструкциям в этой должности sqlite LIKE problem in android

String whereClause = DatabaseHelper.USER_COL + " LIKE ?"; 

    userName = userName+"%" 
6

Пожалуйста, попробуйте следующий код,

if (userName.trim().equalsIgnoreCase(resultString.trim())) 
{  
     return true; 
} 
1

Ваш код должен работать, если разница только в том случае. Я подозреваю, что у вас есть ведущие или конечные пробелы. Попробуйте следующее:

if (userName.trim().equalsIgnoreCase(resultString.trim())) { 
    return true; 
} 
Смежные вопросы