diff --git a/core-java-modules/core-java-string-operations-3/pom.xml b/core-java-modules/core-java-string-operations-3/pom.xml
index 642ade5ab3..20e9bcb39a 100644
--- a/core-java-modules/core-java-string-operations-3/pom.xml
+++ b/core-java-modules/core-java-string-operations-3/pom.xml
@@ -52,6 +52,11 @@
semver4j
${semver4j.version}
+
+ com.google.guava
+ guava
+ ${guava.version}
+
@@ -80,6 +85,7 @@
3.6.1
5.3.9
3.12.0
+ 31.0.1-jre
3.6.3
6.1.1
2.11.1
diff --git a/core-java-modules/core-java-string-operations-3/src/test/java/com/baeldung/multipledelimiterssplit/MultipleDelimitersSplitUnitTest.java b/core-java-modules/core-java-string-operations-3/src/test/java/com/baeldung/multipledelimiterssplit/MultipleDelimitersSplitUnitTest.java
new file mode 100644
index 0000000000..c8f8fc2d98
--- /dev/null
+++ b/core-java-modules/core-java-string-operations-3/src/test/java/com/baeldung/multipledelimiterssplit/MultipleDelimitersSplitUnitTest.java
@@ -0,0 +1,66 @@
+package com.baeldung.multipledelimiterssplit;
+
+import com.google.common.base.CharMatcher;
+import com.google.common.base.Splitter;
+import com.google.common.collect.Iterators;
+import org.apache.commons.lang3.StringUtils;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInstance;
+
+import java.util.Arrays;
+import java.util.regex.Pattern;
+
+@TestInstance(TestInstance.Lifecycle.PER_CLASS)
+public class MultipleDelimitersSplitUnitTest {
+
+ @Test
+ public void givenString_whenSplittingByMultipleDelimitersWithRegEx_thenStringSplit() {
+ String example = "Mary;Thomas:Jane-Kate";
+ String[] names = example.split(";|:|-");
+ String[] expectedNames = new String[]{"Mary", "Thomas", "Jane", "Kate"};
+ Assertions.assertEquals(4, names.length);
+ Assertions.assertArrayEquals(expectedNames, names);
+ }
+
+ @Test
+ public void givenString_whenSplittingByWithCharMatcherAndOnMethod_thenStringSplit() {
+ String example = "Mary;Thomas:Jane-Kate";
+ String[] expectedArray = new String[]{"Mary", "Thomas", "Jane", "Kate"};
+ Iterable expected = Arrays.asList(expectedArray);
+ Iterable names = Splitter.on(CharMatcher.anyOf(";:-")).split(example);
+ Assertions.assertEquals(4, Iterators.size(names.iterator()));
+ Assertions.assertIterableEquals(expected, names);
+ }
+
+ @Test
+ public void givenString_whenSplittingByWithRegexAndOnPatternMethod_thenStringSplit() {
+ String example = "Mary;Thomas:Jane-Kate";
+ String[] expectedArray = new String[]{"Mary", "Thomas", "Jane", "Kate"};
+ Iterable expected = Arrays.asList(expectedArray);
+ Iterable names = Splitter.on(Pattern.compile(";|:|-")).split(example);
+ Assertions.assertEquals(4, Iterators.size(names.iterator()));
+ Assertions.assertIterableEquals(expected, names);
+ }
+
+ @Test
+ public void givenString_whenSplittingByMultipleDelimitersWithGuava_thenStringSplit() {
+ String example = "Mary;Thomas:Jane-Kate";
+ String[] expectedArray = new String[]{"Mary", "Thomas", "Jane", "Kate"};
+ Iterable expected = Arrays.asList(expectedArray);
+ Iterable names = Splitter.onPattern(";|:|-").split(example);
+ Assertions.assertEquals(4, Iterators.size(names.iterator()));
+ Assertions.assertIterableEquals(expected, names);
+ }
+
+ @Test
+ public void givenString_whenSplittingByMultipleDelimitersWithApache_thenStringSplit() {
+ String example = "Mary;Thomas:Jane-Kate";
+ String[] expectedNames = new String[]{"Mary", "Thomas", "Jane", "Kate"};
+ String[] names = StringUtils.split(example, ";:-");
+ Assertions.assertEquals(4, names.length);
+ Assertions.assertArrayEquals(expectedNames, names);
+ }
+
+}
+