我正在研究一个android程序,该程序需要在实现特定操作之前识别用户连接到的Wifi网络。这是我跑做到这一点的代码:如果语句不是使用equals运行的字符串,但包含作品
public String isConectedToPrivateNet(StringBuilder ssid) {
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
ssid.replace(0, ssid.length(), wifiInfo.getSSID());
Log.e("Data(b4 iF): ", ssid.toString());
if(ssid.toString().equals("ACHILLES 101010")) {
Log.e("Data (iN iF): ", ssid.toString());
}else {
ssid.replace(0, ssid.length(), "DIDN'T START");
}
return ssid.toString();
}
基本上,这应该只返回SSID名称,如果if语句是真的吗?但它不会,而是返回“DID NOT START”。当我阅读我的日志时,“Data(b4 if):”显示SSID为“ACHILLES 101010”。因此,我认为if语句应该评估为真,为什么它不这样做?
这里有一些有趣的事情:如果我用.contains()替换.equals(),if语句块中的代码完美运行,并返回SSID。这是为什么?
*的几个注意事项:StringBuilder的是为空在这里传递的是它的声明和初始化
public StringBuilder ssid = new StringBuilder("");
*我也试过用StringBuffer,同样发生。
将logcat复制粘贴到显示隐藏字符的东西中。 –
@ cricket_007我试过那个男人,而且没有隐藏的角色。我使用了这个工具:[show hidden](http://www.online-toolz.com/tools/string-functions.php#)。谢谢 –