2012-05-19 29 views
0

我有一個for循環,我想找到一封電子郵件。我必須字符串,這是肯定相同的。在for循環中,我放了一杯吐司,我看到兩個都顯示了同樣的東西,沒有任何空格。我在if(String == String)中沒有發生任何事情。 下面是代碼:如果問題在for循環

try { 
     jArray = new JSONArray(result); 
     JSONObject json_email = null; 

     for(int i=0;i<=jArray.length();i++){ 
      json_email = jArray.getJSONObject(i); 

      addedby2 = json_email.getString("email"); 



     if(addedby2==email2){ 
      Toast.makeText(this, json_email.toString(), Toast.LENGTH_LONG).show(); 
      user = json_email.getString("user"); 
      rpoints = json_email.getString("respectpoints"); 
      //Toast.makeText(this, user+" "+rpoints, Toast.LENGTH_LONG).show(); 
     } 
     } 
     tvAdded.setText(user + " (" + rpoints + ")"); 
    } catch (JSONException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

我也試過給GetString(「用戶」)if條件外,它的工作。 我試着在if條件寫入:String.equals(String)但沒有任何結果。

有誰知道這個問題可能是什麼?

+0

使用'equals'比較你的字符串(參見* [如何比較Java中的字符串?](http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) *)。如果問題仍然存在,請查看兩個變量的值。 – Howard

+0

嘗試單步穿過它,例如在Firebug。 – Julian

+0

嘗試如果string.compareTo(other_string)== 0 – scrineym

回答

0

如果您使用的是Java,要比較字符串值,您必須使用equals()函數。就像霍華德說的那樣,如果這不起作用,那麼你的變量可能是錯誤的。

+0

我解決了它。錯誤在於我使用「<= Array.length()」而不是「<」。無論如何,謝謝大家。 PS:它在java中使用==來比較兩個字符串。 –