2012-01-08 10 views
3

resultStringは、私は、ユーザー入力にケースを無視比較したい Androidはケースを無視

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

のsqliteから取得するパラメータである文字列を比較し、以下は、私が使用していたコードです。しかし、それは動作しません。

たとえば、データベースに私はユーザー名 "George"を保存します ログインすると、正確に "George"と入力する必要があります。 "george"は機能しません。

これは私の比較するコードです。

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

何が問題なのですか?

+1

この記事で指示に従ってください。テストケースをハードコーディングしてみましたか?あなたの比較タイプの上にuserName = "George"とresultString = "george"? 空白のような余分な文字がないことを確認するために、他のケースで比較前にuserNameとresultStringを出力することもできますか? – nmjohn

+0

私はあなたが提案し、 "if"節が働くようにハードコーディングを試みました。まだ何が起こっているのか分かりません。 –

+0

あなたはすべてのことを正しくやっていると確信していれば、これはまあまあですが、それはエンコーディングの問題でしょうか? –

答えて

0

私はパニックであり、結果をプリントアウトしようとしませんでした。この問題は私のクエリステートメントでした。

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

resultStringは、入力がデータと同じでない限り、常に空です。それを修正する

私はそれが動作するはずのようにこれが見えます 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; 
} 
関連する問題