if 语句不与所需的字符串进行比较,并且不能与其他字符串一起使用 如果变量值与比较的字符串相同



尝试比较 If 语句中的字符串时出现问题。

private String browser = XMLreader.getData("browser");
if (browser == "chrome"){
System.out.println(browser);
} // Will not print anything
if (browser != "chrome"){
System.out.println(browser);
} // Will print chrome 

知道我错过了什么吗?

谢谢

这是因为Java中的字符串无法与"=="运算符进行比较。 使用"=="运算符时,将比较与字符串相关的对象引用。因此,当您得到与"!="相比的实数时,实际上返回将打印"chrome"因为对象引用是不同的并且实际结果。

当你希望在Java中比较字符串时,你可以使用equals字符串方法。像这里:

if("chrome".equals(browser)){ ... }

你也可以使用一些utils库来比较这些字符串,比如Apache Commons的StringUtils。

if(StringUtils.equals("chrome", browser)) { ... }

优点是这些库已经提供的处理,例如验证空值和空值。