我想知道为什么第二个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=
答案 0 :(得分:1)
因为您无法将String
个对象与==
运算符进行比较。
在Java中,==
运算符比较对象的实例。在你的情况下,他们显然不相等。因此,请更改==
代替equals()
:
if("<li><a href=".equals(tmp.substring(0, 12)))
但请注意,equals()
引用无法调用null
,因为它会引发NullPointerException
。在调用实例之前,您必须检查实例是否不是null
。