Предположим, у меня есть название книги, и я ищу ее в базе данных. База данных создает совпадения, некоторые из которых являются полными совпадениями, а некоторые из них являются частичными совпадениями.Как вы проверяете, найдено ли каждое слово в одной строке в другой строке?
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
Есть ДВА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
String, соответствующее слово в searchTerms
String?