2012-04-12 11 views
0

私はこの文字列を"no_questions_by_user"という名前の変数に入れました。等価が真を返さない理由

if (result != null && result.equals("no_user_id")) 
{ 
     Log.d("Post execute: " , "NOOOT OKKKK - no user id");  
} 
else 
if (result != null && result.equals("database_error")) 
{ 
     Log.d("Post execute: " , "NOOOT OKKKK - database error");  
} 
else 
if (result != null && result.equals("no_questions_by_user")) 
{   
     Log.d("Post execute: " , "NOOOT OKKKK - no questions by user so far"); 
} 
else 
{ 
    Log.d("MyQuestionsActivity" , "In JSON parsing area..");     
} 

、それは常に他の最後に行く:私はこのチェックを行うよりも

。しかし、私の理解では、それは本当にチェックブロックに行く必要がありますresult.equals("no_questions_by_user")

なぜブロックが実行されないのですか?

ありがとうございます!

+8

result ... – NimChimpsky

+2

という名前の文字列を出力します.2つの文字列が同じでない場合、 'equals(...)'はfalseを返します。期間。コードのどこかにバグがあります。 –

+0

私はそこにデバッグ文を持っており、結果値が "no_questions_by_user"であることを示しています。これは私を混乱させる原因です。 – GeekedOut

答えて

5

コードはよく見えます。変数resultには別の値が必要です。

私の推測では、結果文字列の最後または最初に空白があると思います。

+0

として正しく宣言されているとは限りません。あなたは最初に答えたので、システムが私にできるときに私は10分で答えを受け入れるでしょう。ありがとう! – GeekedOut

3

debbuggerに「no_questions_by_user」が表示されましたか?

デバッガでスペースが検出されにくいため、テスト前にトリムを試すことができます。

4

試してみてください。

result.trim().equals("no_questions_by_user") 
0

私はあなたが入力ミスを避けるため、あなたの文字列を格納するために、いくつかの静的変数を使用することをお勧めします。

1

"result"変数の値に空白がないことを確認してください。 ifステートメントを入力する前に、このような印刷行を行うことができます。あなたにも個人的にこの

if (result != null && result.trim().equals("no_questions_by_user")) 
{   
     Log.d("Post execute: " , "NOOOT OKKKK - no questions by user so far"); 
} 
5

を行う可能性があります

System.out.println("The Value of result variable is=\"" + result + "\""); 

、私はこのコードが熱い混乱だと思います。

結果を受け取り、マップ内のメッセージを検索した1つのメソッドを記述します。テストが私の目を傷つけている場合は、すべてこれらのすべて:メッセージのペアは、結果を追加するだけでマップに挿入することを意味します。あなたがSpringのようなものを使用している場合は、設定で行い、コードに触れることはできません。

関連する問題