2011-09-09 87 views
0

我在我的android應用程序中遇到了一個奇怪的問題。我必須比較兩個相等的字符串。我試過這個:比較兩件事不起作用

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

那麼......字符串rok在這樣的活動開始時聲明:String rok =「true」; – Gabrielle

+0

和raspunsdata是來自服務器的答案:HttpResponse response = httpclient.execute(httppost); \t \t \t \t/*檢查響應*/ \t \t \t在新= \t的BufferedReader(新的InputStreamReader(響應 \t \t \t \t \t \t .getEntity()的getContent())。); \t \t \t \t StringBuffer sb = new StringBuffer(「」); \t \t \t \t String line =「」; \t \t \t \t String 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個字符串相同的字符集,那麼等號將返回true; == - 比較兩個對象引用是否相等。 例如:

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

一個== b - 將爲真。

嘗試閱讀:http://www.devdaily.com/java/edu/qanda/pjqa00001.shtml