我有一個程序,需要能夠搜索'book'對象的ArrayList,並決定哪些符合給定的條件。多個字符串和條件匹配?
您可以按名稱,身份證號碼或發佈年份進行搜索。 或只是由上述的任何分類。
目前我使用嵌套的if語句,其中,空值表示字段沒有被指定,並且顯示所有。
for(int x = 0; x<bookList.size(); x++)
{
if(bookList.get(x).callNum.equals(callNum) || callNum == null)
{
if(bookList.get(x).title.equals(title) || title == null)
{
if((bookList.get(x).year>= startDate
&& bookList.get(x).year <= endDate) || timeFrame == null)
{
bookList.get(x).ToString();
}
}
}
}
我唯一有問題的地方就是標題變量。我需要它來做字級匹配。因此,如果一本書被稱爲「Java編程」,另一本書被稱爲「面向對象的Java編程」,那麼當搜索尋找「Java」時,兩者都應該被返回。我怎樣才能做到這一點?
我很感謝任何幫助,感謝您的時間!
你並不需要包括'[標籤]'你的問題的標題,我們有標記爲=) – 2010-10-25 21:27:21
此外,你應該考慮換的'條件的順序|| foo = null'子句,短路邏輯將減少事件中'foo'事實上爲'null'的檢查次數。 – 2010-10-25 21:28:45
您不需要嵌套的'if'語句。你可以用'&&'來加入所有的條件(確保所有的東西都加上括號,因爲'&&'比'||'具有更高的優先級)。 – 2010-10-25 21:28:59