如何搜索ArrayList中包含多个单词的字符串?
问题描述:
我的搜索方法适用于一个单词字符串,但不适用于两个单词或更多。如何搜索ArrayList中包含多个单词的字符串?
我应该检查,看看是否titleToFind在
ArrayList<DVD>DVDlist
我的搜索方法相匹配的DVD标题:
public DVD search(String titleToFind) {
for (DVD dvdEntry : DVDlist) {
if (dvdEntry.GetTitle().equalsIgnoreCase(titleToFind)) {
return dvdEntry;
}
}
return null;
}
我不知道如何解决这个问题。
答
你的主要问题是,当你打你的第一个匹配(循环中的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
'equalsIgnoreCase' does not不在乎你的字符串有多少字。如果他们平等,他们是平等的。也许你正在寻找'contains'来代替? – NilsH 2013-04-04 17:51:56
我同意NilsH。如果您无法找到包含多个单词的字符串,那么问题不在于您的搜索功能,而在于其他功能,我们需要查看更多带有示例输入/结果的代码。 – Grambot 2013-04-04 17:57:36
根据答案,有一些混淆。问题是您无法从搜索中获得多个结果,或者您使用多个单词时搜索不匹配的问题? – NilsH 2013-04-04 18:00:47