Java boolean返回false,即使答案应该是正确的

Java boolean返回false,即使答案应该是正确的,java,boolean,processbuilder,ssid,Java,Boolean,Processbuilder,Ssid,我目前正在使用Raspberry Pi Zero W进行一个Smartmirror项目,我需要我的java程序来检查互联网连接,以便知道我是否可以更新天气数据。对于这个方法,我使用iwgetid命令来获取SSID。问题如下:我获取命令行的返回并将其放入if块中。即使返回值(我选中的是正确的outprint)是正确的,布尔值也会返回false作为输出 public boolean checkwifi() throws IOException, InterruptedException{ P

我目前正在使用Raspberry Pi Zero W进行一个Smartmirror项目,我需要我的java程序来检查互联网连接,以便知道我是否可以更新天气数据。对于这个方法,我使用iwgetid命令来获取SSID。问题如下:我获取命令行的返回并将其放入if块中。即使返回值(我选中的是正确的outprint)是正确的,布尔值也会返回false作为输出

public boolean checkwifi() throws IOException, InterruptedException{
    ProcessBuilder ps = new ProcessBuilder("iwgetid");
    ps.redirectErrorStream(true);
    Process pr = ps.start();
    BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream()));
    String line;
    line=in.readLine();
    line.trim();

    if(line == "wlan0     ESSID:\"mySSID\"" || line== "wlan0     ESSID:\"mysecondSSID\"" ){
    pr.waitFor();
    in.close();
    return true;    
    }
    else {
        System.err.println(line);
    pr.waitFor();
    in.close();
    return false;

    }
    }
这是我从控制台获得的输出:

    wlan0     ESSID:"mySSID"
    false       
if(line==“wlan0-ESSID:\“mySSID\”| line==“wlan0-ESSID:\“mysecondSSID\”)
line
的引用与字符串进行比较,它们是不同的


使用
line.equals(“wlan0 ESSID:\“mySSID\”)| line.equals(“wlan0 ESSID:\“mysecondSID\”)
比较字符串的实际值。

使用String.equals(“另一个字符串”);或字符串。包含(“字符串”);我建议在比较上述字符串时修剪和删除空白。