字符串与常量错误的比较

时间:2012-11-04 04:06:14

标签: java html url line tostring

  

可能重复:
  How do I compare strings in Java?

我有这个代码在从网址中检索值时工作得很好,但它没有认识到字符串是“True”是toString()我需要的东西还是别的东西?

try {
    URL url = new URL("http://www.koolflashgames.com/test.php?id=1");
    URLConnection yc = url.openConnection();
    BufferedReader in = new BufferedReader(new InputStreamReader(yc
            .getInputStream()));
    inputLine = in.readLine();
    inputLine = inputLine.toString();
    if(inputLine == "True") {
        logger.info(inputLine);
        player.sendMessage("Thanks");
    }else{
        logger.info(inputLine);
        player.sendMessage("HAHAHA");
    }
    in.close();
} catch (Exception e) {
    e.printStackTrace();
}

4 个答案:

答案 0 :(得分:4)

您无法使用==来比较字符串的内容,因为它们是对象。您必须创建一个比较对象的方法。对于字符串,您可以使用stringName.equals(otherString)

答案 1 :(得分:3)

您必须使用equals来比较字符串。替换:

if(inputLine == "True") {

使用:

if(inputLine.equals("True")) {

operator ==告诉您两个引用是否引用同一个对象,而不是值是否相同。

答案 2 :(得分:3)

我不同意见。使用.equalsIgnoreCase()方法比较忽略大小写的字符串。这将匹配所有情况,例如“True”,“TRue”,“tRue”等大约16场比赛。

答案 3 :(得分:2)

要比较String个对象,请使用equals()方法。

==运算符检查两个String是否具有相同的引用。

有关详细信息,请参阅How do I compare strings in Java?