2014-03-14 51 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