2014-03-14 52 views
0

我很奇怪,为什么if语句不被评估为true第二...HTML标记比较

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= 
+6

简短回答:使用'equals'而不是'=='。 –

+0

工作。谢谢。 –

回答

1

因为你不能比较String使用==运算符的对象。

在Java中,==运算符比较对象的实例。就你而言,他们显然不是平等的。因此,对于equals(),而不是改变你的==

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

但要知道,equals()不能null引用调用,因为它会抛出一个NullPointerException。在调用它之前,您必须检查实例是否不是null