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);
+ }
+}