diff --git a/java-strings/pom.xml b/java-strings/pom.xml index f4fb1c0865..9f89ed6d76 100755 --- a/java-strings/pom.xml +++ b/java-strings/pom.xml @@ -95,6 +95,12 @@ 1.4 + + org.ahocorasick + ahocorasick + 0.4.0 + + diff --git a/java-strings/src/main/java/com/baeldung/string/MatchWords.java b/java-strings/src/main/java/com/baeldung/string/MatchWords.java new file mode 100644 index 0000000000..ec926d99c4 --- /dev/null +++ b/java-strings/src/main/java/com/baeldung/string/MatchWords.java @@ -0,0 +1,48 @@ +package com.baeldung.string; + +import org.ahocorasick.trie.Emit; +import org.ahocorasick.trie.Trie; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.regex.Pattern; + +public class MatchWords { + + // *778*1# *778*00# + public static void main(String[] args) { + String[] items = {"hello", "Baeldung"}; + String inputString = "hello there, Baeldung"; + + boolean isMatch = java8(inputString, new ArrayList<>(Arrays.asList(items))); + + System.out.println(isMatch); + + System.out.println(patternMatch(inputString)); + + ahoCorasick(); + } + + private static void ahoCorasick() { + Trie trie = Trie.builder() + .onlyWholeWords() + .addKeyword("hello") + .addKeyword("Baeldung") + .build(); + Collection emits = trie.parseText("hello there, Baeldung"); + emits.forEach(System.out::println); + } + + private static boolean patternMatch(String inputString) { + Pattern pattern = Pattern.compile("(?=.*hello)(?=.*Baeldung)"); + if (pattern.matcher(inputString).find()) { + return true; + } + return false; + } + + private static boolean java8(String inputString, ArrayList items) { + return Arrays.stream(inputString.split(" ")).allMatch(items::contains); + } +}