2014-02-25 105 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

相关问题