static boolean contains(Iterable<String> haystack, String needle) {
for (String s : haystack) {
if (s.contains(needle)) {
return true;
}
}
return false;
}
static void containsAll() throws IOException {
List<String> words = loadLines("opacial.txt");
List<String> tocheck = loadLines("queries0.txt");
System.out.println(words.size());
System.out.println(tocheck.size());
int index2 = 0;
for (String s : tocheck) {
if (contains(words, s)) {
index2++;
//return false;
}
}
System.out.println(index2);
//return true;
}
Я ищу метод, подобный содержит (код выше), который сделает это: он проверит, существует ли игла в стоге сена или является ли игла частью строки в стоге сена.В этом случае (код выше), если я переворачиваю файл, который идет в стог сена, и файл, который дает иглу, результат будет таким же.но я не хочу этогонапример:
File 1:
i love beers
i like travelling
stackoverflow
beers
And File2 :
beers
i love stackoverflow
тогда, если стог сена приходит из файла 1, а игла приходит из файла2, я хочу, чтобы результат был равен 2, потому что слово beers частично или совпадает только с двумя строками стога сена.(пиво ---> я люблю пиво и пиво) - ничего не происходит с ним я люблю stackoverflow) НО, когда стог сена приходит из файла2, а игла приходит из файла1, я хочу, чтобы результат был равен 2. (я люблю пиво, которое не является частью или то же самое сЧто-нибудь из файла 2, я люблю путешествовать так же, stackoverflow - это часть, я люблю stackoverflow -1- и, наконец, пиво - то же самое, что и пиво -2-) Какой метод для этого правильный?Как я уже говорил ранее, параметр «содержит» дает мне один и тот же результат, независимо от того, какой файл является стогом сена, или строки иголки.
PS В моем примере результат такой же, но я думаю, что это случайный случай.
как я могу это сделать?