Допустим, у меня есть название книги, и я ищу его в базе данных. База данных производит совпадения, некоторые из которых являются полными совпадениями, а некоторые - частичными совпадениями.
A full match
- это когда каждое слово в результатах поиска представлено словом в поисковых терминах. (i.e. there does not have to be a complete overlap on both sides)
Меня интересует только поиск полных совпадений.
Так что, если я наберу поиск для "Ernest Hemingway - The Old Man and the Sea"
и результаты вернут следующее:
Charles Nordhoff - Men Against The Sea
Rodman Philbrick - The Young Man and the Sea
Ernest Hemingway - The Old Man and the Sea
Ernest Hemingway - The Sun Also Rises
Ernest Hemingway - A Farewell to Arms
Ernest Hemingway - For Whom the Bell Tolls
Ernest Hemingway - A Moveable Feast
Ernest Hemingway - True at First Light
Men Against The Sea
The Old Man and the Sea
The Old Man and the Sea Dog
В этом списке TWO full matches
: (согласно приведенному выше определению)
Ernest Hemingway - The Old Man and the Sea
The Old Man and the Sea
Чтобы сделать это в Java, предположим, что у меня есть две переменные:
String searchTerms;
List<String> searchResults;
searchTerms
в приведенном выше примере представляет то, что я набрал: Ernest Hemingway - The Old Man and the Sea
searchResults
представляет список строк, которые я получил из базы данных выше.
for (String result : searchResults) {
// How to check for a full match?
// (each word in `result` is found in `searchTerms`
}
Мой вопрос: в этом for-loop
, как мне проверить, есть ли каждое слово в строке result
, соответствующее слово в строке searchTerms
?