2013-04-04 185 views
0

我的搜索方法適用於一個單詞字符串,但不適用於兩個單詞或更多。如何搜索ArrayList中包含多個單詞的字符串?

我應該檢查,看看是否titleToFind在

ArrayList<DVD>DVDlist 

我的搜索方法相匹配的DVD標題:

public DVD search(String titleToFind) { 
    for (DVD dvdEntry : DVDlist) { 
     if (dvdEntry.GetTitle().equalsIgnoreCase(titleToFind)) { 
      return dvdEntry; 
     } 
    } 
    return null; 
} 

我不知道如何解決這個問題。

+2

'equalsIgnoreCase' does not不在乎你的字符串有多少字。如果他們平等,他們是平等的。也許你正在尋找'contains'來代替? – NilsH 2013-04-04 17:51:56

+0

我同意NilsH。如果您無法找到包含多個單詞的字符串,那麼問題不在於您的搜索功能,而在於其他功能,我們需要查看更多帶有示例輸入/結果的代碼。 – Grambot 2013-04-04 17:57:36

+1

根據答案,有一些混淆。問題是您無法從搜索中獲得多個結果,或者您使用多個單詞時搜索不匹配的問題? – NilsH 2013-04-04 18:00:47

回答

0

你的主要問題是,當你打你的第一個匹配(循環中的return語句)時,你停止搜索。以下是返回包含所有匹配項的列表的示例。

如果您不被允許使用列表,您可以返回一個int(匹配數)或csv匹配。

public List<DVD> search(String titleToFind) { 
    List<DVD> matches = new ArrayList<DVD>();  
    for (DVD dvdEntry : DVDlist) { 
     if (dvdEntry.GetTitle().equalsIgnoreCase(titleToFind)) { 
      matches.add(dvdEntry); 
     } 
    } 

    return matches; 
} 
+0

我不允許我使用另一個ArrayList – trama 2013-04-04 17:54:49

+0

@trama:你能解釋爲什麼你不被允許嗎? – VirtualTroll 2013-04-04 17:56:26

相關問題