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 名称的字符串。