[英]How to morph this code snippet into Java 8 where logic depends on index value?
[英]Java code snippet 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() > tempSummaryString.length() &&
attributeList.get(z).substring(0,tempSummaryString.length() == tempSummaryString)
{
event.setTitle(attributeList.get(z).substring(tempSummaryString.length(),attributeList.get(z).length()));
}
}
現在我的問題是程序永遠不會進入if(不執行event.setTitle方法)。 當我打印的值
attributeList.get(z).substring(0,tempSummaryString.length())
我得到以下內容:
摘要:
所以我很難過為什么它不進入if! 我不明白!
希望有人可以指出我犯的一個愚蠢的錯誤,因為我真的不知道還能做什么
不要使用==
運算符比較字符串(如在attributeList.get(z).substring(0,tempSummaryString.length()) == tempSummaryString
),而是使用String.Equals
方法。
你已經陷入了舊的==
vs equals()
問題。 您正在使用==
,與javascript不同,它進行身份比較(即這些對象是相同的 )。
嘗試這個:
attributeList.get(z).substring(0,tempSummaryString.length())
.equals(tempSummaryString) // equals() not ==
此外,您應該考慮為循環使用foreach語法:
for (String attribute : attributeList) {
if (attribute.substring... // forget about attributeList.get(z) and even z
}
你的問題是: attributeList.get(z).substring(0,tempSummaryString.length())== tempSummaryString
。 您比較引用 ,而不是字符串內容 。 String.equals(otherString)
使用String.equals(otherString)
。
你應該將字符串與equals()進行比較。
attributeList.get(z).substring(0,tempSummaryString.length()).equals(tempSummaryString)
您將字符串與==
進行比較,而您應該使用String類的.equals()
方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.