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()
方法。您陷入了旧的=
vsequals()
问题。您使用的是==
,与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
}