String.replace 正在返回额外的引号
String.replace is returning extra quotation marks
好吧,这可能是一个非常愚蠢的问题,但老实说我不太明白这里发生了什么,我正在尝试将当前的 SSID 与另一个变量进行比较,如下所示:
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String SSID = wifiInfo.getSSID().replace("SSID: ","");
if(myWifi.equals(SSID)){
} else {
}
现在,如您所知,wifiInfo.getSSID()
return 是一个像这样的字符串 SSID: wifi1
。假设 myWifi
的值为 wifi1
,如果它与 wifiInfo.getSSID()
进行比较,它会说它是错误的,因为它是,所以我正在尝试替换 SSID:
部分一无所获,希望只获得 SSID 名称 (wifi1),因此可以比较字符串并且 return 为真。但是使用上面的代码会使 SSID 变量的值为 "wifi1"
,因此应用程序说它是错误的,因为 "wifi1"
与 wifi1
不同。
为什么会这样?
简单,删除 SSID
部分后使用 .replaceAll("\"","");
即可。所以你将拥有:
String SSID = wifiInfo.getSSID().replace("SSID: ","").replaceAll("\"","");
这将删除所有 "
,无论它们在字符串中的什么位置。
我会使用 String.Contains 来检查您想要的字符串。
bool wifiNameExists = wifiInfo.Contains("wifi1")
您当然可以将 "wifi1" 替换为包含您要搜索的 wifi 名称的字符串。
好吧,这可能是一个非常愚蠢的问题,但老实说我不太明白这里发生了什么,我正在尝试将当前的 SSID 与另一个变量进行比较,如下所示:
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String SSID = wifiInfo.getSSID().replace("SSID: ","");
if(myWifi.equals(SSID)){
} else {
}
现在,如您所知,wifiInfo.getSSID()
return 是一个像这样的字符串 SSID: wifi1
。假设 myWifi
的值为 wifi1
,如果它与 wifiInfo.getSSID()
进行比较,它会说它是错误的,因为它是,所以我正在尝试替换 SSID:
部分一无所获,希望只获得 SSID 名称 (wifi1),因此可以比较字符串并且 return 为真。但是使用上面的代码会使 SSID 变量的值为 "wifi1"
,因此应用程序说它是错误的,因为 "wifi1"
与 wifi1
不同。
为什么会这样?
简单,删除 SSID
部分后使用 .replaceAll("\"","");
即可。所以你将拥有:
String SSID = wifiInfo.getSSID().replace("SSID: ","").replaceAll("\"","");
这将删除所有 "
,无论它们在字符串中的什么位置。
我会使用 String.Contains 来检查您想要的字符串。
bool wifiNameExists = wifiInfo.Contains("wifi1")
您当然可以将 "wifi1" 替换为包含您要搜索的 wifi 名称的字符串。