2014-02-25 150 views
0

我有以下代碼:爲什麼兩個相同的字符串不等於?

int nb=0; 
wifiInfo = wifi.getConnectionInfo(); 
ssid = wifiInfo.getSSID(); 
wifi.startScan(); 
result=wifi.getScanResults(); 
int sizeList=vysledek.size(); 

if(result==null) { 

    Log.d(LOG,"ERROR"); 

} else { 

    for(int i=0; i<sizeList; i++) { 

     Log.d("Check",result.get(i).SSID); 
     if (result.get(i).SSID.equalsIgnoreCase(ssid)) { 
      Log.d("SSID",ssid); 
      nb++; 
     } 
     //Log.d("nb:",Integer.toString(nb)+"Size:"+Integer.toString(sizeList)); 

    } 
} 

I'm連接到WiFi網絡稱爲ABC和result.get(0).SSIDresult.get(1).SSIDresult.get(2).SSID也是ABC。爲什麼if語句不增加nb?在所有情況下,nb仍然是0。 感謝所有

+0

@donfuxx或'equalsIgnoreCase()',如在上面的代碼... – Geobits

+0

真的...... @Geobits – donfuxx

+0

準確,I'm使用equalsIgnoreCase ()或者等於()都不成功 – user3340336

回答

1

getScanResults()將給SSID用雙引號例如當通過result.get(i).SSID訪問時,您的ABC將是「ABC」。

因此,在比較之前刪除這些引號。

/** 
* remove double quote from start and end of the string 
*/ 
private String unornamatedSsid(String ssid) { 
    ssid = ssid.replaceFirst("^\"", ""); 
    return ssid.replaceFirst("\"$", ""); 
} 

使用上述功能:

String scannedSSid = unornamatedSsid(result.get(i).SSID); 
if (scannedSSid.equalsIgnoreCase(ssid)) { 
} 
+0

謝謝:)工作 – user3340336

相關問題