match words final refactor

This commit is contained in:
mherbaghinyan 2019-01-13 11:04:42 +04:00
parent 16bed6f64b
commit 06ffe3b5e4

View File

@ -4,7 +4,10 @@ import org.ahocorasick.trie.Emit;
import org.ahocorasick.trie.Trie; import org.ahocorasick.trie.Trie;
import java.util.*; import java.util.*;
import java.util.function.Function;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class MatchWords { public class MatchWords {
@ -51,14 +54,17 @@ public class MatchWords {
.onlyWholeWords() .onlyWholeWords()
.addKeyword(words[0]) .addKeyword(words[0])
.addKeyword(words[1]) .addKeyword(words[1])
.ignoreOverlaps()
.build(); .build();
Collection<Emit> emits = trie.parseText(inputString); Collection<Emit> emits = trie.parseText(inputString)
.stream()
.filter(e -> !Objects.equals(e.getKeyword(), e.getKeyword()))
.collect(Collectors.toList());
return emits.size() == words.length; return emits.size() == words.length;
} }
private static boolean containsWordsPatternMatch(String inputString, String[] words) { private static boolean containsWordsPatternMatch(String inputString, String[] words) {
Pattern pattern = Pattern.compile("(?=.*words[0])(?=.*words[1])"); Pattern pattern = Pattern.compile("(?=.*hello)(?=.*Baeldung)");
if (pattern.matcher(inputString).find()) { if (pattern.matcher(inputString).find()) {
return true; return true;
} }