尝试比较 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)) { ... }
优点是这些库已经提供的处理,例如验证空值和空值。