与HTML标记比较

时间:2014-03-14 02:26:26

标签: java string equality

我想知道为什么第二个if语句没有被评估为真......

 while ((tmp = yearReader.readLine()) != null) {
        if(tmp.length() >= 22){
            System.out.println(tmp.substring(0, 12));
            if(tmp.substring(0, 12) == "<li><a href="){
                System.out.println("This should print...");
            }
        }
    }

打印这个......

 <li><a href=
 <li><a href=
 <li><a href=

1 个答案:

答案 0 :(得分:1)

因为您无法将String个对象与==运算符进行比较。

在Java中,==运算符比较对象的实例。在你的情况下,他们显然不相等。因此,请更改==代替equals()

if("<li><a href=".equals(tmp.substring(0, 12)))

但请注意,equals()引用无法调用null,因为它会引发NullPointerException。在调用实例之前,您必须检查实例是否不是null