2013-10-15 60 views
1

我真的不明白我在哪裏出錯了。任何幫助將非常感激。Java - JSONArray中的字符串在if語句中不匹配

我有一個JSONArray

JSONArray jsonArray = new JSONArray(responseString); 

哪裏responseString爲[ 「概率」, 「2」]

我得到的第一個String

String maybeProb = jsonArray.getString(0); 

,當我告訴它使用吐司一切正常,吐司剛剛說出問題

Toast.makeText(getBaseContext(),maybeProb ,Toast.LENGTH_LONG).show(); 

但是,當我使用if (maybeProb == "prob")它不返回true

爲什麼不?我究竟做錯了什麼???

爲大家介紹一些細節:形成原JSONArray來自一個HttpPost到我的服務器

InputStream is = null; 

HttpResponse response = httpclient.execute(httppost); 

HttpEntity entity = response.getEntity(); 

is = entity.getContent(); 

//Convert response to string 
responseString = convertStreamToString(is); 

public String convertStreamToString(InputStream inputStream) { 

    StringBuilder sb = null; 
    String result = null; 

    try 
    {   
     BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream,"UTF-8")); 
     sb = new StringBuilder(); 
     String line = null; 

     while ((line = reader.readLine()) != null) 
     { 
     sb.append(line + "\n"); 
     } 

     inputStream.close(); 
     result = sb.toString(); 

    } 
     catch(Exception e) 
    { 
     Toast.makeText(getBaseContext(),e.toString() ,Toast.LENGTH_LONG).show(); 
    } 

    // return the string 
    return result; 
} 

我的服務器上的PHP這使得響應

$message = array("prob", "2"); 

$response = json_encode($message); 

print($response); 

responseString

非常感謝任何能幫助我的人

回答

4

在Java中使用的比較對象.equals()方法,而不是"=="操作

這一個將以下代碼

if(maybeProb == "prob") { 
} 

if(maybeProb.equals("prob")) { 
} 
+0

而問題不在了。非常感謝,我對Java仍然很陌生。 – 365SplendidSuns

+0

@ user1165417很高興聽到它.. – Prabhakaran

2

等於運算符(==)返回true,只有當兩個對象是相同的,如果沒有他們的價值是一樣的。因此,當您使用對象比較的對象。maybeProb"prob"返回false

如果你想要做比較,你必須使用maybeprob.equals("prob")