好吧,这可能是一个非常愚蠢的问题,但老实说,我不太明白这里发生了什么,我正在尝试将当前 SSID 与另一个变量进行比较,如下所示:
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String SSID = wifiInfo.getSSID().replace("SSID: ","");
if(myWifi.equals(SSID)){
} else {
}
现在,如您所知,wifiInfo.getSSID()
返回一个类似这样的字符串 SSID: wifi1
。假设 myWifi
的值为 wifi1
,如果将它与 wifiInfo.getSSID()
进行比较,它会说它是假的,因为它是,所以我正在尝试替换 SSID:
部分,希望只获得 SSID 名称 (wifi1),以便可以比较字符串并返回 true。但是使用上面的代码会使 SSID 变量的值为 "wifi1"
,因此应用程序说它是错误的,因为 "wifi1"
与 不同wifi1
.
为什么会这样?
最佳答案
删除 SSID
部分后,只需使用 .replaceAll("\"","");
即可。因此您将拥有:
String SSID = wifiInfo.getSSID().replace("SSID: ","").replaceAll("\"","");
这将删除所有 "
,无论它们在字符串中的什么位置。
关于android - String.replace 返回额外的引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41512450/