Fewer magic strings.
diff --git a/src/main/java/org/apache/commons/text/AlphabetConverter.java b/src/main/java/org/apache/commons/text/AlphabetConverter.java
index 0cc5e21..be76939 100644
--- a/src/main/java/org/apache/commons/text/AlphabetConverter.java
+++ b/src/main/java/org/apache/commons/text/AlphabetConverter.java
@@ -30,6 +30,7 @@
 import java.util.Set;
 
 import org.apache.commons.lang3.ArrayUtils;
+import org.apache.commons.lang3.StringUtils;
 
 /**
  * <p>
@@ -497,7 +498,7 @@
                             encodedLetterLength);
 
             ac.addSingleEncoding(encodedLetterLength,
-                    "",
+                    StringUtils.EMPTY,
                     encodingCopy,
                     originalCopy.iterator(),
                     doNotEncodeMap);
diff --git a/src/main/java/org/apache/commons/text/ExtendedMessageFormat.java b/src/main/java/org/apache/commons/text/ExtendedMessageFormat.java
index 28c1604..d7694a6 100644
--- a/src/main/java/org/apache/commons/text/ExtendedMessageFormat.java
+++ b/src/main/java/org/apache/commons/text/ExtendedMessageFormat.java
@@ -27,6 +27,7 @@
 import java.util.Map;
 import java.util.Objects;
 
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.text.matcher.StringMatcherFactory;
 
 /**
@@ -81,7 +82,7 @@
     /**
      * The empty string.
      */
-    private static final String DUMMY_PATTERN = "";
+    private static final String DUMMY_PATTERN = StringUtils.EMPTY;
 
     /**
      * A comma.
diff --git a/src/main/java/org/apache/commons/text/FormattableUtils.java b/src/main/java/org/apache/commons/text/FormattableUtils.java
index aed0eb7..4ca0a42 100644
--- a/src/main/java/org/apache/commons/text/FormattableUtils.java
+++ b/src/main/java/org/apache/commons/text/FormattableUtils.java
@@ -21,6 +21,8 @@
 import java.util.Formattable;
 import java.util.Formatter;
 
+import org.apache.commons.lang3.StringUtils;
+
 /**
  * <p>Provides utilities for working with the {@code Formattable} interface.</p>
  *
@@ -139,7 +141,7 @@
         if (precision >= 0 && precision < seq.length()) {
             final CharSequence _ellipsis;
             if (ellipsis == null) {
-                _ellipsis = "";
+                _ellipsis = StringUtils.EMPTY;
             } else {
                 _ellipsis = ellipsis;
             }
diff --git a/src/main/java/org/apache/commons/text/RandomStringGenerator.java b/src/main/java/org/apache/commons/text/RandomStringGenerator.java
index a66f71b..d8e38e4 100644
--- a/src/main/java/org/apache/commons/text/RandomStringGenerator.java
+++ b/src/main/java/org/apache/commons/text/RandomStringGenerator.java
@@ -24,6 +24,7 @@
 import java.util.concurrent.ThreadLocalRandom;
 
 import org.apache.commons.lang3.ArrayUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.Validate;
 
 /**
@@ -164,7 +165,7 @@
      */
     public String generate(final int length) {
         if (length == 0) {
-            return "";
+            return StringUtils.EMPTY;
         }
         Validate.isTrue(length > 0, "Length %d is smaller than zero.", length);
 
diff --git a/src/main/java/org/apache/commons/text/StrBuilder.java b/src/main/java/org/apache/commons/text/StrBuilder.java
index 1b741d2..727c292 100644
--- a/src/main/java/org/apache/commons/text/StrBuilder.java
+++ b/src/main/java/org/apache/commons/text/StrBuilder.java
@@ -26,6 +26,7 @@
 import java.util.Objects;
 
 import org.apache.commons.lang3.ArrayUtils;
+import org.apache.commons.lang3.StringUtils;
 
 /**
  * Builds a string from constituent parts providing a more flexible and powerful API
@@ -1220,7 +1221,7 @@
      */
     public StrBuilder appendWithSeparators(final Object[] array, final String separator) {
         if (array != null && array.length > 0) {
-            final String sep = Objects.toString(separator, "");
+            final String sep = Objects.toString(separator, StringUtils.EMPTY);
             append(array[0]);
             for (int i = 1; i < array.length; i++) {
                 append(sep);
@@ -1242,7 +1243,7 @@
      */
     public StrBuilder appendWithSeparators(final Iterable<?> iterable, final String separator) {
         if (iterable != null) {
-            final String sep = Objects.toString(separator, "");
+            final String sep = Objects.toString(separator, StringUtils.EMPTY);
             final Iterator<?> it = iterable.iterator();
             while (it.hasNext()) {
                 append(it.next());
@@ -1266,7 +1267,7 @@
      */
     public StrBuilder appendWithSeparators(final Iterator<?> it, final String separator) {
         if (it != null) {
-            final String sep = Objects.toString(separator, "");
+            final String sep = Objects.toString(separator, StringUtils.EMPTY);
             while (it.hasNext()) {
                 append(it.next());
                 if (it.hasNext()) {
@@ -1468,7 +1469,7 @@
             ensureCapacity(size + width);
             String str = obj == null ? getNullText() : obj.toString();
             if (str == null) {
-                str = "";
+                str = StringUtils.EMPTY;
             }
             final int strLen = str.length();
             if (strLen >= width) {
@@ -1515,7 +1516,7 @@
             ensureCapacity(size + width);
             String str = obj == null ? getNullText() : obj.toString();
             if (str == null) {
-                str = "";
+                str = StringUtils.EMPTY;
             }
             final int strLen = str.length();
             if (strLen >= width) {
@@ -2262,7 +2263,7 @@
      */
     public String leftString(final int length) {
         if (length <= 0) {
-            return "";
+            return StringUtils.EMPTY;
         } else if (length >= size) {
             return new String(buffer, 0, size);
         } else {
@@ -2284,7 +2285,7 @@
      */
     public String rightString(final int length) {
         if (length <= 0) {
-            return "";
+            return StringUtils.EMPTY;
         } else if (length >= size) {
             return new String(buffer, 0, size);
         } else {
@@ -2313,7 +2314,7 @@
             index = 0;
         }
         if (length <= 0 || index >= size) {
-            return "";
+            return StringUtils.EMPTY;
         }
         if (size <= index + length) {
             return new String(buffer, index, size - index);
diff --git a/src/main/java/org/apache/commons/text/StrTokenizer.java b/src/main/java/org/apache/commons/text/StrTokenizer.java
index e700b52..2c584d1 100644
--- a/src/main/java/org/apache/commons/text/StrTokenizer.java
+++ b/src/main/java/org/apache/commons/text/StrTokenizer.java
@@ -22,6 +22,8 @@
 import java.util.ListIterator;
 import java.util.NoSuchElementException;
 
+import org.apache.commons.lang3.StringUtils;
+
 /**
  * Tokenizes a string based on delimiters (separators)
  * and supporting quoting and ignored character concepts.
@@ -652,7 +654,7 @@
 
             // handle case where end of string is a delimiter
             if (pos >= count) {
-                addToken(tokenList, "");
+                addToken(tokenList, StringUtils.EMPTY);
             }
         }
         return tokenList;
@@ -708,14 +710,14 @@
 
         // handle reaching end
         if (start >= len) {
-            addToken(tokenList, "");
+            addToken(tokenList, StringUtils.EMPTY);
             return -1;
         }
 
         // handle empty token
         final int delimLen = getDelimiterMatcher().isMatch(srcChars, start, start, len);
         if (delimLen > 0) {
-            addToken(tokenList, "");
+            addToken(tokenList, StringUtils.EMPTY);
             return start + delimLen;
         }
 
diff --git a/src/main/java/org/apache/commons/text/StringEscapeUtils.java b/src/main/java/org/apache/commons/text/StringEscapeUtils.java
index ec531df..5ead630 100644
--- a/src/main/java/org/apache/commons/text/StringEscapeUtils.java
+++ b/src/main/java/org/apache/commons/text/StringEscapeUtils.java
@@ -250,8 +250,8 @@
         escapeXsiMap.put("'", "\\'");
         escapeXsiMap.put(" ", "\\ ");
         escapeXsiMap.put("\t", "\\\t");
-        escapeXsiMap.put("\r\n", "");
-        escapeXsiMap.put("\n", "");
+        escapeXsiMap.put("\r\n", StringUtils.EMPTY);
+        escapeXsiMap.put("\n", StringUtils.EMPTY);
         escapeXsiMap.put("*", "\\*");
         escapeXsiMap.put("?", "\\?");
         escapeXsiMap.put("[", "\\[");
@@ -279,7 +279,7 @@
         unescapeJavaMap.put("\\\\", "\\");
         unescapeJavaMap.put("\\\"", "\"");
         unescapeJavaMap.put("\\'", "'");
-        unescapeJavaMap.put("\\", "");
+        unescapeJavaMap.put("\\", StringUtils.EMPTY);
         UNESCAPE_JAVA = new AggregateTranslator(
                 new OctalUnescaper(),     // .between('\1', '\377'),
                 new UnicodeUnescaper(),
diff --git a/src/main/java/org/apache/commons/text/StringTokenizer.java b/src/main/java/org/apache/commons/text/StringTokenizer.java
index ec25e9f..9a28106 100644
--- a/src/main/java/org/apache/commons/text/StringTokenizer.java
+++ b/src/main/java/org/apache/commons/text/StringTokenizer.java
@@ -22,6 +22,7 @@
 import java.util.ListIterator;
 import java.util.NoSuchElementException;
 
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.text.matcher.StringMatcher;
 import org.apache.commons.text.matcher.StringMatcherFactory;
 
@@ -692,7 +693,7 @@
 
             // handle case where end of string is a delimiter
             if (pos >= count) {
-                addToken(tokenList, "");
+                addToken(tokenList, StringUtils.EMPTY);
             }
         }
         return tokenList;
@@ -750,14 +751,14 @@
 
         // handle reaching end
         if (start >= len) {
-            addToken(tokenList, "");
+            addToken(tokenList, StringUtils.EMPTY);
             return -1;
         }
 
         // handle empty token
         final int delimLen = getDelimiterMatcher().isMatch(srcChars, start, start, len);
         if (delimLen > 0) {
-            addToken(tokenList, "");
+            addToken(tokenList, StringUtils.EMPTY);
             return start + delimLen;
         }
 
diff --git a/src/main/java/org/apache/commons/text/TextStringBuilder.java b/src/main/java/org/apache/commons/text/TextStringBuilder.java
index 4fa2574..1ae9ebe 100644
--- a/src/main/java/org/apache/commons/text/TextStringBuilder.java
+++ b/src/main/java/org/apache/commons/text/TextStringBuilder.java
@@ -859,7 +859,7 @@
             ensureCapacity(size + width);
             String str = obj == null ? getNullText() : obj.toString();
             if (str == null) {
-                str = "";
+                str = StringUtils.EMPTY;
             }
             final int strLen = str.length();
             if (strLen >= width) {
@@ -904,7 +904,7 @@
             ensureCapacity(size + width);
             String str = obj == null ? getNullText() : obj.toString();
             if (str == null) {
-                str = "";
+                str = StringUtils.EMPTY;
             }
             final int strLen = str.length();
             if (strLen >= width) {
@@ -1375,7 +1375,7 @@
      */
     public TextStringBuilder appendWithSeparators(final Iterable<?> iterable, final String separator) {
         if (iterable != null) {
-            final String sep = Objects.toString(separator, "");
+            final String sep = Objects.toString(separator, StringUtils.EMPTY);
             final Iterator<?> it = iterable.iterator();
             while (it.hasNext()) {
                 append(it.next());
@@ -1397,7 +1397,7 @@
      */
     public TextStringBuilder appendWithSeparators(final Iterator<?> it, final String separator) {
         if (it != null) {
-            final String sep = Objects.toString(separator, "");
+            final String sep = Objects.toString(separator, StringUtils.EMPTY);
             while (it.hasNext()) {
                 append(it.next());
                 if (it.hasNext()) {
@@ -1418,7 +1418,7 @@
      */
     public TextStringBuilder appendWithSeparators(final Object[] array, final String separator) {
         if (array != null && array.length > 0) {
-            final String sep = Objects.toString(separator, "");
+            final String sep = Objects.toString(separator, StringUtils.EMPTY);
             append(array[0]);
             for (int i = 1; i < array.length; i++) {
                 append(sep);
@@ -2422,7 +2422,7 @@
      */
     public String leftString(final int length) {
         if (length <= 0) {
-            return "";
+            return StringUtils.EMPTY;
         } else if (length >= size) {
             return new String(buffer, 0, size);
         } else {
@@ -2458,7 +2458,7 @@
             index = 0;
         }
         if (length <= 0 || index >= size) {
-            return "";
+            return StringUtils.EMPTY;
         }
         if (size <= index + length) {
             return new String(buffer, index, size - index);
@@ -2830,7 +2830,7 @@
      */
     public String rightString(final int length) {
         if (length <= 0) {
-            return "";
+            return StringUtils.EMPTY;
         } else if (length >= size) {
             return new String(buffer, 0, size);
         } else {
diff --git a/src/main/java/org/apache/commons/text/WordUtils.java b/src/main/java/org/apache/commons/text/WordUtils.java
index 6f6f1d2..4c487ce 100644
--- a/src/main/java/org/apache/commons/text/WordUtils.java
+++ b/src/main/java/org/apache/commons/text/WordUtils.java
@@ -712,7 +712,7 @@
             return str;
         }
         if (delimiters != null && delimiters.length == 0) {
-            return "";
+            return StringUtils.EMPTY;
         }
         final Set<Integer> delimiterSet = generateDelimiterSet(delimiters);
         final int strLen = str.length();