Java代码片段逻辑

Java代码片段逻辑,java,logic,Java,Logic,我看不出我做错了什么。以下是我遇到问题的代码: String tempSummaryString = "SUMMARY:"; for(int z = 0; z<attributeList.size() ; z++) { System.out.println(attributeList.get(z).substring(0,tempSummaryString.length())); if(attributeList.get(z).length() > tempSumma

我看不出我做错了什么。以下是我遇到问题的代码:

String tempSummaryString = "SUMMARY:";
for(int z = 0; z<attributeList.size() ; z++)
{
    System.out.println(attributeList.get(z).substring(0,tempSummaryString.length()));
    if(attributeList.get(z).length() > tempSummaryString.length() && 
       attributeList.get(z).substring(0,tempSummaryString.length() == tempSummaryString)
    {
            event.setTitle(attributeList.get(z).substring(tempSummaryString.length(),attributeList.get(z).length()));
    }
}
我得到以下信息:

总结:

所以我很困惑为什么它没有进入if!我不明白


希望有人能指出我犯的一个愚蠢的错误,因为我真的不知道还能做什么。

不要使用
=
操作符比较字符串(如
attributeList.get(z).substring(0,tempsumaryString.length())==tempsumaryString
),请改用
String.Equals
方法。

您的问题是:
attributeList.get(z).substring(0,tempsumaryString.length())==tempsumaryString
。比较引用,而不是字符串内容。使用
String.equals(otherString)

您应该将字符串与equals()进行比较


您正在将字符串与
=
进行比较,而您应该使用字符串类“
.equals()
方法。

您陷入了旧的
=
vs
equals()
问题。您使用的是
==
,与javascript不同,它会进行身份比较(即这些对象是否相同)

试试这个:

attributeList.get(z).substring(0,tempSummaryString.length())
    .equals(tempSummaryString) // equals() not ==

也应该考虑使用循环的语法:

for (String attribute : attributeList) {
    if (attribute.substring... // forget about attributeList.get(z) and even z
}

attributeList.get(z)
的结果是什么?它可能是一个空字符串。
attributeList.get(z).substring(0,tempSummaryString.length())
    .equals(tempSummaryString) // equals() not ==
for (String attribute : attributeList) {
    if (attribute.substring... // forget about attributeList.get(z) and even z
}