为什么两个相同的字符串不等于?

时间:2014-02-25 17:34:33

标签: android string equals android-wifi wifimanager

我有以下代码:

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));

    }
}

我已连接到名为ABC的wifi网络,result.get(0).SSIDresult.get(1).SSIDresult.get(2).SSID也是ABC。为什么if语句不会增加nb?在所有情况下,nb仍为0。 谢谢大家

1 个答案:

答案 0 :(得分:2)

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)) {
}