Java 与HTML标记的比较

Java 与HTML标记的比较,java,string,equality,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.

我想知道为什么第二个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...");
            }
        }
    }
while((tmp=yearReader.readLine())!=null){
如果(tmp.length()>=22){
System.out.println(tmp.substring(0,12));

if(tmp.substring(0,12)=“
  • ,因为您无法将
    字符串
    对象与
    =
    运算符进行比较

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

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

    if(“
  • 简短回答:使用
    equals
    而不是
    =
    。这很有效。谢谢。
    if("<li><a href=".equals(tmp.substring(0, 12)))