2011-09-09 4 views
0

私のアンドロイドアプリには奇妙な問題があります。私は等しい2つの弦を比較しなければならない。私はこれを試しました:2つのことを比較しても動作しません

if (raspunsdata.equals(rok)) { 
       System.out.println("changed "); 

      } else 
       System.out.println("no change"); 
     } 

しかし、私はいつも "変化しません"。これの前に私は両方の文字列のSystem.out.printlnを持っていて、両方とも同じ値を持っています。

私も(raspunsdata==rok)raspunsdata.contentEquals(rok)を試しましたが、同じ問題があります。どうして?私は理解できません、...助けてください...

+0

この文字列変数を格納する場所からコード全体を表示できますか? – user370305

+0

まあ... String rokは、このようなアクティビティの最初に宣言されます:String rok = "true"; – Gabrielle

+0

とraspunsdataはサーバーからの応答です。HttpResponse response = httpclient.execute(httppost); =新しいBufferedReaderの(新しいInputStreamReaderの(応答 \t \t \t \t \t \t .getEntity()のgetContent()))で \t \t \t \t/*応答を確認する*/ \t \t \t \t。 \t \t \t \t StringBuffer sb = new StringBuffer( ""); \t \t \t \t文字列= ""; \t \t \t \t文字列NL = System.getProperty( "line.separator"); \t \t \t \tながら(!(ライン= in.readLine())= NULL){ \t \t \t \t \t sb.append(ライン+ NL)。 \t \t \t \t} \t \t \t \t in.close()。 \t \t \t \t raspunsdata = sb.toString(); \t \t \t \t System.out.println( "Raspuns data" + raspunsdata); – Gabrielle

答えて

4

あなたが不要な空白がある場合があります。トリム機能を使って確実に確認する必要があるかもしれません。

​​

Btwは、値が同じかどうかを確認する正しい方法です。

+0

私はあなたを愛しています:D ...あなたは私を救った...ありがと...私は実現しませんでした – Gabrielle

0

.equals - 両方のオブジェクトの値を比較します。同じ文字セットを持つ2つの文字列がある場合、.equalsはtrueを返します。 == - 2つのオブジェクト参照が等しいかどうかを比較します。たとえば :

String a = "lol"; 
String b = a; 

== bは - trueになります。

試し読み:http://www.devdaily.com/java/edu/qanda/pjqa00001.shtml

関連する問題