簡體   English   中英

Java代碼段邏輯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM