diff --git a/libraries/pom.xml b/libraries/pom.xml
index 23fec48075..ee5fb2f977 100644
--- a/libraries/pom.xml
+++ b/libraries/pom.xml
@@ -90,6 +90,11 @@
commons-lang3
${commons-lang.version}
+
+ org.apache.commons
+ commons-text
+ ${commons-text.version}
+
org.apache.commons
commons-collections4
@@ -366,6 +371,7 @@
0.7.0
3.2.4
3.5
+ 1.1
1.9.3
1.9.2
1.2
diff --git a/libraries/src/test/java/com/baeldung/text/DiffTest.java b/libraries/src/test/java/com/baeldung/text/DiffTest.java
new file mode 100644
index 0000000000..95370013b6
--- /dev/null
+++ b/libraries/src/test/java/com/baeldung/text/DiffTest.java
@@ -0,0 +1,18 @@
+package com.baeldung.text;
+
+import org.apache.commons.text.diff.EditScript;
+import org.apache.commons.text.diff.StringsComparator;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class DiffTest {
+
+ @Test
+ public void whenEditScript_thenCorrect() {
+ StringsComparator cmp = new StringsComparator("ABCFGH", "BCDEFG");
+ EditScript script = cmp.getScript();
+ int mod = script.getModifications();
+
+ Assert.assertEquals(4, mod);
+ }
+}
diff --git a/libraries/src/test/java/com/baeldung/text/LongestCommonSubsequenceTest.java b/libraries/src/test/java/com/baeldung/text/LongestCommonSubsequenceTest.java
new file mode 100644
index 0000000000..80ca0cfbba
--- /dev/null
+++ b/libraries/src/test/java/com/baeldung/text/LongestCommonSubsequenceTest.java
@@ -0,0 +1,25 @@
+package com.baeldung.text;
+
+import org.apache.commons.text.similarity.LongestCommonSubsequence;
+import org.apache.commons.text.similarity.LongestCommonSubsequenceDistance;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class LongestCommonSubsequenceTest {
+
+ @Test
+ public void whenCompare_thenCorrect() {
+ LongestCommonSubsequence lcs = new LongestCommonSubsequence();
+ int countLcs = lcs.apply("New York", "New Hampshire");
+
+ Assert.assertEquals(5, countLcs);
+ }
+
+ @Test
+ public void whenCalculateDistance_thenCorrect() {
+ LongestCommonSubsequenceDistance lcsd = new LongestCommonSubsequenceDistance();
+ int countLcsd = lcsd.apply("New York", "New Hampshire");
+
+ Assert.assertEquals(11, countLcsd);
+ }
+}
diff --git a/libraries/src/test/java/com/baeldung/text/StrBuilderTest.java b/libraries/src/test/java/com/baeldung/text/StrBuilderTest.java
new file mode 100644
index 0000000000..a8dbaadc5a
--- /dev/null
+++ b/libraries/src/test/java/com/baeldung/text/StrBuilderTest.java
@@ -0,0 +1,24 @@
+package com.baeldung.text;
+
+import org.apache.commons.text.StrBuilder;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class StrBuilderTest {
+
+ @Test
+ public void whenReplaced_thenCorrect() {
+ StrBuilder strBuilder = new StrBuilder("example StrBuilder!");
+ strBuilder.replaceAll("example", "new");
+
+ Assert.assertEquals(new StrBuilder("new StrBuilder!"), strBuilder);
+ }
+
+ @Test
+ public void whenCleared_thenEmpty() {
+ StrBuilder strBuilder = new StrBuilder("example StrBuilder!");
+ strBuilder.clear();
+
+ Assert.assertEquals(new StrBuilder(""), strBuilder);
+ }
+}
diff --git a/libraries/src/test/java/com/baeldung/text/StrSubstitutorTest.java b/libraries/src/test/java/com/baeldung/text/StrSubstitutorTest.java
new file mode 100644
index 0000000000..24e6ff59c8
--- /dev/null
+++ b/libraries/src/test/java/com/baeldung/text/StrSubstitutorTest.java
@@ -0,0 +1,23 @@
+package com.baeldung.text;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.text.StrSubstitutor;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class StrSubstitutorTest {
+
+ @Test
+ public void whenSubstituted_thenCorrect() {
+ Map substitutes = new HashMap<>();
+ substitutes.put("name", "John");
+ substitutes.put("college", "University of Stanford");
+ String templateString = "My name is ${name} and I am a student at the ${college}.";
+ StrSubstitutor sub = new StrSubstitutor(substitutes);
+ String result = sub.replace(templateString);
+
+ Assert.assertEquals("My name is John and I am a student at the University of Stanford.", result);
+ }
+}
diff --git a/libraries/src/test/java/com/baeldung/text/WordUtilsTest.java b/libraries/src/test/java/com/baeldung/text/WordUtilsTest.java
new file mode 100644
index 0000000000..b9268d67b3
--- /dev/null
+++ b/libraries/src/test/java/com/baeldung/text/WordUtilsTest.java
@@ -0,0 +1,23 @@
+package com.baeldung.text;
+
+import org.apache.commons.text.WordUtils;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class WordUtilsTest {
+
+ @Test
+ public void whenCapitalized_thenCorrect() {
+ String toBeCapitalized = "to be capitalized!";
+ String result = WordUtils.capitalize(toBeCapitalized);
+
+ Assert.assertEquals("To Be Capitalized!", result);
+ }
+
+ @Test
+ public void whenContainsWords_thenCorrect() {
+ boolean containsWords = WordUtils.containsAllWords("String to search", "to", "search");
+
+ Assert.assertTrue(containsWords);
+ }
+}