From 16bed6f64b2a55fa36568119a92c3593345b00d1 Mon Sep 17 00:00:00 2001 From: mherbaghinyan Date: Sun, 13 Jan 2019 10:42:18 +0400 Subject: [PATCH] match words refactoring --- .../java/com/baeldung/string/MatchWords.java | 37 ++++++++++--------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/java-strings/src/main/java/com/baeldung/string/MatchWords.java b/java-strings/src/main/java/com/baeldung/string/MatchWords.java index f0b64c19cf..f4a52ae308 100644 --- a/java-strings/src/main/java/com/baeldung/string/MatchWords.java +++ b/java-strings/src/main/java/com/baeldung/string/MatchWords.java @@ -9,21 +9,21 @@ import java.util.regex.Pattern; public class MatchWords { public static void main(String[] args) { - String[] items = {"hello", "Baeldung"}; + String[] words = {"hello", "Baeldung"}; String inputString = "hello there, Baeldung"; - System.out.println(containsWords(inputString, items)); + containsWords(inputString, words); - System.out.println(java8(new ArrayList<>(Arrays.asList(inputString.split(" "))), new ArrayList<>(Arrays.asList(items)))); + containsWordsJava8(new ArrayList<>(Arrays.asList(inputString.split(" "))), new ArrayList<>(Arrays.asList(words))); - System.out.println(patternMatch(inputString)); + containsWordsPatternMatch(inputString, words); - ahoCorasick(); + containsWordsAhoCorasick(inputString, words); - indexOfWords(inputString, items); + containsWordsIndexOf(inputString, words); } - private static boolean indexOfWords(String inputString, String[] words) { + private static boolean containsWordsIndexOf(String inputString, String[] words) { boolean found = true; for (String word : words) { int index = inputString.indexOf(word); @@ -46,30 +46,31 @@ public class MatchWords { return found; } - private static void ahoCorasick() { + private static boolean containsWordsAhoCorasick(String inputString, String[] words) { Trie trie = Trie.builder() .onlyWholeWords() - .addKeyword("hello") - .addKeyword("Baeldung") + .addKeyword(words[0]) + .addKeyword(words[1]) .build(); - Collection emits = trie.parseText("hello there, Baeldung"); - emits.forEach(System.out::println); + Collection emits = trie.parseText(inputString); + + return emits.size() == words.length; } - private static boolean patternMatch(String inputString) { - Pattern pattern = Pattern.compile("(?=.*hello)(?=.*Baeldung)"); + private static boolean containsWordsPatternMatch(String inputString, String[] words) { + Pattern pattern = Pattern.compile("(?=.*words[0])(?=.*words[1])"); if (pattern.matcher(inputString).find()) { return true; } return false; } - private static boolean java8(ArrayList inputString, ArrayList items) { - return items.stream().allMatch(inputString::contains); + private static boolean containsWordsJava8(ArrayList inputString, ArrayList words) { + return words.stream().allMatch(inputString::contains); } - private static boolean array(ArrayList inputString, ArrayList items) { - return inputString.containsAll(items); + private static boolean containsWordsArray(ArrayList inputString, ArrayList words) { + return inputString.containsAll(words); } }