This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-lang.git

commit cdddb82e12ef7b2cc770125e930bde040b032213
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Thu Sep 26 10:57:13 2024 -0400

    Refactor StringUtils#remove[IgnoreCase](String, String)
    
    - Refactor to use Strings
    - StringUtils#remove(String, String)
    - StringUtils#removeIgnoreCase(String, String)
    - Strings#remove(String, String)
    - Javadoc
---
 .../java/org/apache/commons/lang3/StringUtils.java |  11 +-
 .../java/org/apache/commons/lang3/Strings.java     | 622 +++++++++++----------
 2 files changed, 339 insertions(+), 294 deletions(-)

diff --git a/src/main/java/org/apache/commons/lang3/StringUtils.java 
b/src/main/java/org/apache/commons/lang3/StringUtils.java
index 6539fb605..786d17c0d 100644
--- a/src/main/java/org/apache/commons/lang3/StringUtils.java
+++ b/src/main/java/org/apache/commons/lang3/StringUtils.java
@@ -5700,12 +5700,11 @@ public class StringUtils {
      * @return the substring with the string removed if found,
      *  {@code null} if null String input
      * @since 2.1
+     * @deprecated Use {@link Strings#remove(String, String) 
Strings.CS.remove(String, String)}
      */
+    @Deprecated
     public static String remove(final String str, final String remove) {
-        if (isEmpty(str) || isEmpty(remove)) {
-            return str;
-        }
-        return Strings.CS.replace(str, remove, EMPTY, -1);
+        return Strings.CS.remove(str, remove);
     }
 
     /**
@@ -5899,9 +5898,11 @@ public class StringUtils {
      * @return the substring with the string removed if found, {@code null} if
      *         null String input
      * @since 3.5
+     * @deprecated Use {@link Strings#remove(String, String) 
Strings.CI.remove(String, String)}
      */
+    @Deprecated
     public static String removeIgnoreCase(final String str, final String 
remove) {
-        return Strings.CI.replace(str, remove, EMPTY, -1);
+        return Strings.CI.remove(str, remove);
     }
 
     /**
diff --git a/src/main/java/org/apache/commons/lang3/Strings.java 
b/src/main/java/org/apache/commons/lang3/Strings.java
index cf6c29369..fa3814f17 100644
--- a/src/main/java/org/apache/commons/lang3/Strings.java
+++ b/src/main/java/org/apache/commons/lang3/Strings.java
@@ -434,30 +434,30 @@ public abstract class Strings {
      * </p>
      *
      * <pre>{@code
-     * StringUtils.compare(null, null)   = 0
-     * StringUtils.compare(null , "a")   < 0
-     * StringUtils.compare("a", null)   > 0
-     * StringUtils.compare("abc", "abc") = 0
-     * StringUtils.compare("a", "b")     < 0
-     * StringUtils.compare("b", "a")     > 0
-     * StringUtils.compare("a", "B")     > 0
-     * StringUtils.compare("ab", "abc")  < 0
+     * Strings.CS.compare(null, null)   = 0
+     * Strings.CS.compare(null , "a")   < 0
+     * Strings.CS.compare("a", null)   > 0
+     * Strings.CS.compare("abc", "abc") = 0
+     * Strings.CS.compare("a", "b")     < 0
+     * Strings.CS.compare("b", "a")     > 0
+     * Strings.CS.compare("a", "B")     > 0
+     * Strings.CS.compare("ab", "abc")  < 0
      * }</pre>
      * <p>
      * Case-insensitive examples
      * </p>
      *
      * <pre>{@code
-     * StringUtils.compareIgnoreCase(null, null)   = 0
-     * StringUtils.compareIgnoreCase(null , "a")   < 0
-     * StringUtils.compareIgnoreCase("a", null)    > 0
-     * StringUtils.compareIgnoreCase("abc", "abc") = 0
-     * StringUtils.compareIgnoreCase("abc", "ABC") = 0
-     * StringUtils.compareIgnoreCase("a", "b")     < 0
-     * StringUtils.compareIgnoreCase("b", "a")     > 0
-     * StringUtils.compareIgnoreCase("a", "B")     < 0
-     * StringUtils.compareIgnoreCase("A", "b")     < 0
-     * StringUtils.compareIgnoreCase("ab", "ABC")  < 0
+     * Strings.CI.compareIgnoreCase(null, null)   = 0
+     * Strings.CI.compareIgnoreCase(null , "a")   < 0
+     * Strings.CI.compareIgnoreCase("a", null)    > 0
+     * Strings.CI.compareIgnoreCase("abc", "abc") = 0
+     * Strings.CI.compareIgnoreCase("abc", "ABC") = 0
+     * Strings.CI.compareIgnoreCase("a", "b")     < 0
+     * Strings.CI.compareIgnoreCase("b", "a")     > 0
+     * Strings.CI.compareIgnoreCase("a", "B")     < 0
+     * Strings.CI.compareIgnoreCase("A", "b")     < 0
+     * Strings.CI.compareIgnoreCase("ab", "ABC")  < 0
      * }</pre>
      *
      * @see String#compareTo(String)
@@ -479,26 +479,26 @@ public abstract class Strings {
      * </p>
      *
      * <pre>
-     * StringUtils.contains(null, *)     = false
-     * StringUtils.contains(*, null)     = false
-     * StringUtils.contains("", "")      = true
-     * StringUtils.contains("abc", "")   = true
-     * StringUtils.contains("abc", "a")  = true
-     * StringUtils.contains("abc", "z")  = false
+     * Strings.CS.contains(null, *)     = false
+     * Strings.CS.contains(*, null)     = false
+     * Strings.CS.contains("", "")      = true
+     * Strings.CS.contains("abc", "")   = true
+     * Strings.CS.contains("abc", "a")  = true
+     * Strings.CS.contains("abc", "z")  = false
      * </pre>
      * <p>
      * Case-insensitive examples
      * </p>
      *
      * <pre>
-     * StringUtils.containsIgnoreCase(null, *)    = false
-     * StringUtils.containsIgnoreCase(*, null)    = false
-     * StringUtils.containsIgnoreCase("", "")     = true
-     * StringUtils.containsIgnoreCase("abc", "")  = true
-     * StringUtils.containsIgnoreCase("abc", "a") = true
-     * StringUtils.containsIgnoreCase("abc", "z") = false
-     * StringUtils.containsIgnoreCase("abc", "A") = true
-     * StringUtils.containsIgnoreCase("abc", "Z") = false
+     * Strings.CI.containsIgnoreCase(null, *)    = false
+     * Strings.CI.containsIgnoreCase(*, null)    = false
+     * Strings.CI.containsIgnoreCase("", "")     = true
+     * Strings.CI.containsIgnoreCase("abc", "")  = true
+     * Strings.CI.containsIgnoreCase("abc", "a") = true
+     * Strings.CI.containsIgnoreCase("abc", "z") = false
+     * Strings.CI.containsIgnoreCase("abc", "A") = true
+     * Strings.CI.containsIgnoreCase("abc", "Z") = false
      * </pre>
      *
      * @param seq       the CharSequence to check, may be null
@@ -519,28 +519,28 @@ public abstract class Strings {
      * </p>
      *
      * <pre>
-     * StringUtils.containsAny(null, *)            = false
-     * StringUtils.containsAny("", *)              = false
-     * StringUtils.containsAny(*, null)            = false
-     * StringUtils.containsAny(*, [])              = false
-     * StringUtils.containsAny("abcd", "ab", null) = true
-     * StringUtils.containsAny("abcd", "ab", "cd") = true
-     * StringUtils.containsAny("abc", "d", "abc")  = true
+     * Strings.CS.containsAny(null, *)            = false
+     * Strings.CS.containsAny("", *)              = false
+     * Strings.CS.containsAny(*, null)            = false
+     * Strings.CS.containsAny(*, [])              = false
+     * Strings.CS.containsAny("abcd", "ab", null) = true
+     * Strings.CS.containsAny("abcd", "ab", "cd") = true
+     * Strings.CS.containsAny("abc", "d", "abc")  = true
      * </pre>
      * <p>
      * Case-insensitive examples
      * </p>
      *
      * <pre>
-     * StringUtils.containsAny(null, *)            = false
-     * StringUtils.containsAny("", *)              = false
-     * StringUtils.containsAny(*, null)            = false
-     * StringUtils.containsAny(*, [])              = false
-     * StringUtils.containsAny("abcd", "ab", null) = true
-     * StringUtils.containsAny("abcd", "ab", "cd") = true
-     * StringUtils.containsAny("abc", "d", "abc")  = true
-     * StringUtils.containsAny("abc", "D", "ABC")  = true
-     * StringUtils.containsAny("ABC", "d", "abc")  = true
+     * Strings.CI.containsAny(null, *)            = false
+     * Strings.CI.containsAny("", *)              = false
+     * Strings.CI.containsAny(*, null)            = false
+     * Strings.CI.containsAny(*, [])              = false
+     * Strings.CI.containsAny("abcd", "ab", null) = true
+     * Strings.CI.containsAny("abcd", "ab", "cd") = true
+     * Strings.CI.containsAny("abc", "d", "abc")  = true
+     * Strings.CI.containsAny("abc", "D", "ABC")  = true
+     * Strings.CI.containsAny("ABC", "d", "abc")  = true
      * </pre>
      *
      * @param cs                  The CharSequence to check, may be null
@@ -605,14 +605,14 @@ public abstract class Strings {
      * </p>
      *
      * <pre>
-     * StringUtils.endsWithAny(null, null)                  = false
-     * StringUtils.endsWithAny(null, new String[] {"abc"})  = false
-     * StringUtils.endsWithAny("abcxyz", null)              = false
-     * StringUtils.endsWithAny("abcxyz", new String[] {""}) = true
-     * StringUtils.endsWithAny("abcxyz", new String[] {"xyz"}) = true
-     * StringUtils.endsWithAny("abcxyz", new String[] {null, "xyz", "abc"}) = 
true
-     * StringUtils.endsWithAny("abcXYZ", "def", "XYZ")      = true
-     * StringUtils.endsWithAny("abcXYZ", "def", "xyz")      = false
+     * Strings.CS.endsWithAny(null, null)                  = false
+     * Strings.CS.endsWithAny(null, new String[] {"abc"})  = false
+     * Strings.CS.endsWithAny("abcxyz", null)              = false
+     * Strings.CS.endsWithAny("abcxyz", new String[] {""}) = true
+     * Strings.CS.endsWithAny("abcxyz", new String[] {"xyz"}) = true
+     * Strings.CS.endsWithAny("abcxyz", new String[] {null, "xyz", "abc"}) = 
true
+     * Strings.CS.endsWithAny("abcXYZ", "def", "XYZ")      = true
+     * Strings.CS.endsWithAny("abcXYZ", "def", "xyz")      = false
      * </pre>
      *
      * @param sequence      the CharSequence to check, may be null
@@ -645,22 +645,22 @@ public abstract class Strings {
      * </p>
      *
      * <pre>
-     * StringUtils.equals(null, null)   = true
-     * StringUtils.equals(null, "abc")  = false
-     * StringUtils.equals("abc", null)  = false
-     * StringUtils.equals("abc", "abc") = true
-     * StringUtils.equals("abc", "ABC") = false
+     * Strings.CS.equals(null, null)   = true
+     * Strings.CS.equals(null, "abc")  = false
+     * Strings.CS.equals("abc", null)  = false
+     * Strings.CS.equals("abc", "abc") = true
+     * Strings.CS.equals("abc", "ABC") = false
      * </pre>
      * <p>
      * Case-insensitive examples
      * </p>
      *
      * <pre>
-     * StringUtils.equalsIgnoreCase(null, null)   = true
-     * StringUtils.equalsIgnoreCase(null, "abc")  = false
-     * StringUtils.equalsIgnoreCase("abc", null)  = false
-     * StringUtils.equalsIgnoreCase("abc", "abc") = true
-     * StringUtils.equalsIgnoreCase("abc", "ABC") = true
+     * Strings.CI.equalsIgnoreCase(null, null)   = true
+     * Strings.CI.equalsIgnoreCase(null, "abc")  = false
+     * Strings.CI.equalsIgnoreCase("abc", null)  = false
+     * Strings.CI.equalsIgnoreCase("abc", "abc") = true
+     * Strings.CI.equalsIgnoreCase("abc", "ABC") = true
      * </pre>
      *
      * @param cs1 the first CharSequence, may be {@code null}
@@ -684,22 +684,22 @@ public abstract class Strings {
      * </p>
      *
      * <pre>
-     * StringUtils.equals(null, null)   = true
-     * StringUtils.equals(null, "abc")  = false
-     * StringUtils.equals("abc", null)  = false
-     * StringUtils.equals("abc", "abc") = true
-     * StringUtils.equals("abc", "ABC") = false
+     * Strings.CS.equals(null, null)   = true
+     * Strings.CS.equals(null, "abc")  = false
+     * Strings.CS.equals("abc", null)  = false
+     * Strings.CS.equals("abc", "abc") = true
+     * Strings.CS.equals("abc", "ABC") = false
      * </pre>
      * <p>
      * Case-insensitive examples
      * </p>
      *
      * <pre>
-     * StringUtils.equalsIgnoreCase(null, null)   = true
-     * StringUtils.equalsIgnoreCase(null, "abc")  = false
-     * StringUtils.equalsIgnoreCase("abc", null)  = false
-     * StringUtils.equalsIgnoreCase("abc", "abc") = true
-     * StringUtils.equalsIgnoreCase("abc", "ABC") = true
+     * Strings.CI.equalsIgnoreCase(null, null)   = true
+     * Strings.CI.equalsIgnoreCase(null, "abc")  = false
+     * Strings.CI.equalsIgnoreCase("abc", null)  = false
+     * Strings.CI.equalsIgnoreCase("abc", "abc") = true
+     * Strings.CI.equalsIgnoreCase("abc", "ABC") = true
      * </pre>
      *
      * @param str1 the first CharSequence, may be {@code null}
@@ -720,24 +720,24 @@ public abstract class Strings {
      * </p>
      *
      * <pre>
-     * StringUtils.equalsAny(null, (CharSequence[]) null) = false
-     * StringUtils.equalsAny(null, null, null)    = true
-     * StringUtils.equalsAny(null, "abc", "def")  = false
-     * StringUtils.equalsAny("abc", null, "def")  = false
-     * StringUtils.equalsAny("abc", "abc", "def") = true
-     * StringUtils.equalsAny("abc", "ABC", "DEF") = false
+     * Strings.CS.equalsAny(null, (CharSequence[]) null) = false
+     * Strings.CS.equalsAny(null, null, null)    = true
+     * Strings.CS.equalsAny(null, "abc", "def")  = false
+     * Strings.CS.equalsAny("abc", null, "def")  = false
+     * Strings.CS.equalsAny("abc", "abc", "def") = true
+     * Strings.CS.equalsAny("abc", "ABC", "DEF") = false
      * </pre>
      * <p>
      * Case-insensitive examples
      * </p>
      *
      * <pre>
-     * StringUtils.equalsAny(null, (CharSequence[]) null) = false
-     * StringUtils.equalsAny(null, null, null)    = true
-     * StringUtils.equalsAny(null, "abc", "def")  = false
-     * StringUtils.equalsAny("abc", null, "def")  = false
-     * StringUtils.equalsAny("abc", "abc", "def") = true
-     * StringUtils.equalsAny("abc", "ABC", "DEF") = false
+     * Strings.CI.equalsAny(null, (CharSequence[]) null) = false
+     * Strings.CI.equalsAny(null, null, null)    = true
+     * Strings.CI.equalsAny(null, "abc", "def")  = false
+     * Strings.CI.equalsAny("abc", null, "def")  = false
+     * Strings.CI.equalsAny("abc", "abc", "def") = true
+     * Strings.CI.equalsAny("abc", "ABC", "DEF") = false
      * </pre>
      *
      * @param string        to compare, may be {@code null}.
@@ -768,27 +768,27 @@ public abstract class Strings {
      * </p>
      *
      * <pre>
-     * StringUtils.indexOf(null, *)          = -1
-     * StringUtils.indexOf(*, null)          = -1
-     * StringUtils.indexOf("", "")           = 0
-     * StringUtils.indexOf("", *)            = -1 (except when * = "")
-     * StringUtils.indexOf("aabaabaa", "a")  = 0
-     * StringUtils.indexOf("aabaabaa", "b")  = 2
-     * StringUtils.indexOf("aabaabaa", "ab") = 1
-     * StringUtils.indexOf("aabaabaa", "")   = 0
+     * Strings.CS.indexOf(null, *)          = -1
+     * Strings.CS.indexOf(*, null)          = -1
+     * Strings.CS.indexOf("", "")           = 0
+     * Strings.CS.indexOf("", *)            = -1 (except when * = "")
+     * Strings.CS.indexOf("aabaabaa", "a")  = 0
+     * Strings.CS.indexOf("aabaabaa", "b")  = 2
+     * Strings.CS.indexOf("aabaabaa", "ab") = 1
+     * Strings.CS.indexOf("aabaabaa", "")   = 0
      * </pre>
      * <p>
      * Case-insensitive examples
      * </p>
      *
      * <pre>
-     * StringUtils.indexOfIgnoreCase(null, *)          = -1
-     * StringUtils.indexOfIgnoreCase(*, null)          = -1
-     * StringUtils.indexOfIgnoreCase("", "")           = 0
-     * StringUtils.indexOfIgnoreCase(" ", " ")         = 0
-     * StringUtils.indexOfIgnoreCase("aabaabaa", "a")  = 0
-     * StringUtils.indexOfIgnoreCase("aabaabaa", "b")  = 2
-     * StringUtils.indexOfIgnoreCase("aabaabaa", "ab") = 1
+     * Strings.CI.indexOfIgnoreCase(null, *)          = -1
+     * Strings.CI.indexOfIgnoreCase(*, null)          = -1
+     * Strings.CI.indexOfIgnoreCase("", "")           = 0
+     * Strings.CI.indexOfIgnoreCase(" ", " ")         = 0
+     * Strings.CI.indexOfIgnoreCase("aabaabaa", "a")  = 0
+     * Strings.CI.indexOfIgnoreCase("aabaabaa", "b")  = 2
+     * Strings.CI.indexOfIgnoreCase("aabaabaa", "ab") = 1
      * </pre>
      *
      * @param seq       the CharSequence to check, may be null
@@ -812,35 +812,35 @@ public abstract class Strings {
      * </p>
      *
      * <pre>
-     * StringUtils.indexOf(null, *, *)          = -1
-     * StringUtils.indexOf(*, null, *)          = -1
-     * StringUtils.indexOf("", "", 0)           = 0
-     * StringUtils.indexOf("", *, 0)            = -1 (except when * = "")
-     * StringUtils.indexOf("aabaabaa", "a", 0)  = 0
-     * StringUtils.indexOf("aabaabaa", "b", 0)  = 2
-     * StringUtils.indexOf("aabaabaa", "ab", 0) = 1
-     * StringUtils.indexOf("aabaabaa", "b", 3)  = 5
-     * StringUtils.indexOf("aabaabaa", "b", 9)  = -1
-     * StringUtils.indexOf("aabaabaa", "b", -1) = 2
-     * StringUtils.indexOf("aabaabaa", "", 2)   = 2
-     * StringUtils.indexOf("abc", "", 9)        = 3
+     * Strings.CS.indexOf(null, *, *)          = -1
+     * Strings.CS.indexOf(*, null, *)          = -1
+     * Strings.CS.indexOf("", "", 0)           = 0
+     * Strings.CS.indexOf("", *, 0)            = -1 (except when * = "")
+     * Strings.CS.indexOf("aabaabaa", "a", 0)  = 0
+     * Strings.CS.indexOf("aabaabaa", "b", 0)  = 2
+     * Strings.CS.indexOf("aabaabaa", "ab", 0) = 1
+     * Strings.CS.indexOf("aabaabaa", "b", 3)  = 5
+     * Strings.CS.indexOf("aabaabaa", "b", 9)  = -1
+     * Strings.CS.indexOf("aabaabaa", "b", -1) = 2
+     * Strings.CS.indexOf("aabaabaa", "", 2)   = 2
+     * Strings.CS.indexOf("abc", "", 9)        = 3
      * </pre>
      * <p>
      * Case-insensitive examples
      * </p>
      *
      * <pre>
-     * StringUtils.indexOfIgnoreCase(null, *, *)          = -1
-     * StringUtils.indexOfIgnoreCase(*, null, *)          = -1
-     * StringUtils.indexOfIgnoreCase("", "", 0)           = 0
-     * StringUtils.indexOfIgnoreCase("aabaabaa", "A", 0)  = 0
-     * StringUtils.indexOfIgnoreCase("aabaabaa", "B", 0)  = 2
-     * StringUtils.indexOfIgnoreCase("aabaabaa", "AB", 0) = 1
-     * StringUtils.indexOfIgnoreCase("aabaabaa", "B", 3)  = 5
-     * StringUtils.indexOfIgnoreCase("aabaabaa", "B", 9)  = -1
-     * StringUtils.indexOfIgnoreCase("aabaabaa", "B", -1) = 2
-     * StringUtils.indexOfIgnoreCase("aabaabaa", "", 2)   = 2
-     * StringUtils.indexOfIgnoreCase("abc", "", 9)        = -1
+     * Strings.CI.indexOfIgnoreCase(null, *, *)          = -1
+     * Strings.CI.indexOfIgnoreCase(*, null, *)          = -1
+     * Strings.CI.indexOfIgnoreCase("", "", 0)           = 0
+     * Strings.CI.indexOfIgnoreCase("aabaabaa", "A", 0)  = 0
+     * Strings.CI.indexOfIgnoreCase("aabaabaa", "B", 0)  = 2
+     * Strings.CI.indexOfIgnoreCase("aabaabaa", "AB", 0) = 1
+     * Strings.CI.indexOfIgnoreCase("aabaabaa", "B", 3)  = 5
+     * Strings.CI.indexOfIgnoreCase("aabaabaa", "B", 9)  = -1
+     * Strings.CI.indexOfIgnoreCase("aabaabaa", "B", -1) = 2
+     * Strings.CI.indexOfIgnoreCase("aabaabaa", "", 2)   = 2
+     * Strings.CI.indexOfIgnoreCase("abc", "", 9)        = -1
      * </pre>
      *
      * @param seq       the CharSequence to check, may be null
@@ -880,24 +880,24 @@ public abstract class Strings {
      * </p>
      *
      * <pre>
-     * StringUtils.lastIndexOf(null, *)          = -1
-     * StringUtils.lastIndexOf(*, null)          = -1
-     * StringUtils.lastIndexOf("", "")           = 0
-     * StringUtils.lastIndexOf("aabaabaa", "a")  = 7
-     * StringUtils.lastIndexOf("aabaabaa", "b")  = 5
-     * StringUtils.lastIndexOf("aabaabaa", "ab") = 4
-     * StringUtils.lastIndexOf("aabaabaa", "")   = 8
+     * Strings.CS.lastIndexOf(null, *)          = -1
+     * Strings.CS.lastIndexOf(*, null)          = -1
+     * Strings.CS.lastIndexOf("", "")           = 0
+     * Strings.CS.lastIndexOf("aabaabaa", "a")  = 7
+     * Strings.CS.lastIndexOf("aabaabaa", "b")  = 5
+     * Strings.CS.lastIndexOf("aabaabaa", "ab") = 4
+     * Strings.CS.lastIndexOf("aabaabaa", "")   = 8
      * </pre>
      * <p>
      * Case-insensitive examples
      * </p>
      *
      * <pre>
-     * StringUtils.lastIndexOfIgnoreCase(null, *)          = -1
-     * StringUtils.lastIndexOfIgnoreCase(*, null)          = -1
-     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "A")  = 7
-     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B")  = 5
-     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "AB") = 4
+     * Strings.CI.lastIndexOfIgnoreCase(null, *)          = -1
+     * Strings.CI.lastIndexOfIgnoreCase(*, null)          = -1
+     * Strings.CI.lastIndexOfIgnoreCase("aabaabaa", "A")  = 7
+     * Strings.CI.lastIndexOfIgnoreCase("aabaabaa", "B")  = 5
+     * Strings.CI.lastIndexOfIgnoreCase("aabaabaa", "AB") = 4
      * </pre>
      *
      * @param str       the CharSequence to check, may be null
@@ -925,33 +925,33 @@ public abstract class Strings {
      * </p>
      *
      * <pre>
-     * StringUtils.lastIndexOf(null, *, *)          = -1
-     * StringUtils.lastIndexOf(*, null, *)          = -1
-     * StringUtils.lastIndexOf("aabaabaa", "a", 8)  = 7
-     * StringUtils.lastIndexOf("aabaabaa", "b", 8)  = 5
-     * StringUtils.lastIndexOf("aabaabaa", "ab", 8) = 4
-     * StringUtils.lastIndexOf("aabaabaa", "b", 9)  = 5
-     * StringUtils.lastIndexOf("aabaabaa", "b", -1) = -1
-     * StringUtils.lastIndexOf("aabaabaa", "a", 0)  = 0
-     * StringUtils.lastIndexOf("aabaabaa", "b", 0)  = -1
-     * StringUtils.lastIndexOf("aabaabaa", "b", 1)  = -1
-     * StringUtils.lastIndexOf("aabaabaa", "b", 2)  = 2
-     * StringUtils.lastIndexOf("aabaabaa", "ba", 2)  = 2
+     * Strings.CS.lastIndexOf(null, *, *)          = -1
+     * Strings.CS.lastIndexOf(*, null, *)          = -1
+     * Strings.CS.lastIndexOf("aabaabaa", "a", 8)  = 7
+     * Strings.CS.lastIndexOf("aabaabaa", "b", 8)  = 5
+     * Strings.CS.lastIndexOf("aabaabaa", "ab", 8) = 4
+     * Strings.CS.lastIndexOf("aabaabaa", "b", 9)  = 5
+     * Strings.CS.lastIndexOf("aabaabaa", "b", -1) = -1
+     * Strings.CS.lastIndexOf("aabaabaa", "a", 0)  = 0
+     * Strings.CS.lastIndexOf("aabaabaa", "b", 0)  = -1
+     * Strings.CS.lastIndexOf("aabaabaa", "b", 1)  = -1
+     * Strings.CS.lastIndexOf("aabaabaa", "b", 2)  = 2
+     * Strings.CS.lastIndexOf("aabaabaa", "ba", 2)  = 2
      * </pre>
      * <p>
      * Case-insensitive examples
      * </p>
      *
      * <pre>
-     * StringUtils.lastIndexOfIgnoreCase(null, *, *)          = -1
-     * StringUtils.lastIndexOfIgnoreCase(*, null, *)          = -1
-     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "A", 8)  = 7
-     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 8)  = 5
-     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "AB", 8) = 4
-     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 9)  = 5
-     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", -1) = -1
-     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "A", 0)  = 0
-     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 0)  = -1
+     * Strings.CI.lastIndexOfIgnoreCase(null, *, *)          = -1
+     * Strings.CI.lastIndexOfIgnoreCase(*, null, *)          = -1
+     * Strings.CI.lastIndexOfIgnoreCase("aabaabaa", "A", 8)  = 7
+     * Strings.CI.lastIndexOfIgnoreCase("aabaabaa", "B", 8)  = 5
+     * Strings.CI.lastIndexOfIgnoreCase("aabaabaa", "AB", 8) = 4
+     * Strings.CI.lastIndexOfIgnoreCase("aabaabaa", "B", 9)  = 5
+     * Strings.CI.lastIndexOfIgnoreCase("aabaabaa", "B", -1) = -1
+     * Strings.CI.lastIndexOfIgnoreCase("aabaabaa", "A", 0)  = 0
+     * Strings.CI.lastIndexOfIgnoreCase("aabaabaa", "B", 0)  = -1
      * </pre>
      *
      * @param seq       the CharSequence to check, may be null
@@ -969,28 +969,28 @@ public abstract class Strings {
      * </p>
      *
      * <pre>
-     * StringUtils.prependIfMissing(null, null) = null
-     * StringUtils.prependIfMissing("abc", null) = "abc"
-     * StringUtils.prependIfMissing("", "xyz") = "xyz"
-     * StringUtils.prependIfMissing("abc", "xyz") = "xyzabc"
-     * StringUtils.prependIfMissing("xyzabc", "xyz") = "xyzabc"
-     * StringUtils.prependIfMissing("XYZabc", "xyz") = "xyzXYZabc"
+     * Strings.CS.prependIfMissing(null, null) = null
+     * Strings.CS.prependIfMissing("abc", null) = "abc"
+     * Strings.CS.prependIfMissing("", "xyz") = "xyz"
+     * Strings.CS.prependIfMissing("abc", "xyz") = "xyzabc"
+     * Strings.CS.prependIfMissing("xyzabc", "xyz") = "xyzabc"
+     * Strings.CS.prependIfMissing("XYZabc", "xyz") = "xyzXYZabc"
      * </pre>
      * <p>
      * With additional prefixes,
      * </p>
      *
      * <pre>
-     * StringUtils.prependIfMissing(null, null, null) = null
-     * StringUtils.prependIfMissing("abc", null, null) = "abc"
-     * StringUtils.prependIfMissing("", "xyz", null) = "xyz"
-     * StringUtils.prependIfMissing("abc", "xyz", new CharSequence[]{null}) = 
"xyzabc"
-     * StringUtils.prependIfMissing("abc", "xyz", "") = "abc"
-     * StringUtils.prependIfMissing("abc", "xyz", "mno") = "xyzabc"
-     * StringUtils.prependIfMissing("xyzabc", "xyz", "mno") = "xyzabc"
-     * StringUtils.prependIfMissing("mnoabc", "xyz", "mno") = "mnoabc"
-     * StringUtils.prependIfMissing("XYZabc", "xyz", "mno") = "xyzXYZabc"
-     * StringUtils.prependIfMissing("MNOabc", "xyz", "mno") = "xyzMNOabc"
+     * Strings.CS.prependIfMissing(null, null, null) = null
+     * Strings.CS.prependIfMissing("abc", null, null) = "abc"
+     * Strings.CS.prependIfMissing("", "xyz", null) = "xyz"
+     * Strings.CS.prependIfMissing("abc", "xyz", new CharSequence[]{null}) = 
"xyzabc"
+     * Strings.CS.prependIfMissing("abc", "xyz", "") = "abc"
+     * Strings.CS.prependIfMissing("abc", "xyz", "mno") = "xyzabc"
+     * Strings.CS.prependIfMissing("xyzabc", "xyz", "mno") = "xyzabc"
+     * Strings.CS.prependIfMissing("mnoabc", "xyz", "mno") = "mnoabc"
+     * Strings.CS.prependIfMissing("XYZabc", "xyz", "mno") = "xyzXYZabc"
+     * Strings.CS.prependIfMissing("MNOabc", "xyz", "mno") = "xyzMNOabc"
      * </pre>
      *
      * <p>
@@ -998,28 +998,28 @@ public abstract class Strings {
      * </p>
      *
      * <pre>
-     * StringUtils.prependIfMissingIgnoreCase(null, null) = null
-     * StringUtils.prependIfMissingIgnoreCase("abc", null) = "abc"
-     * StringUtils.prependIfMissingIgnoreCase("", "xyz") = "xyz"
-     * StringUtils.prependIfMissingIgnoreCase("abc", "xyz") = "xyzabc"
-     * StringUtils.prependIfMissingIgnoreCase("xyzabc", "xyz") = "xyzabc"
-     * StringUtils.prependIfMissingIgnoreCase("XYZabc", "xyz") = "XYZabc"
+     * Strings.CI.prependIfMissingIgnoreCase(null, null) = null
+     * Strings.CI.prependIfMissingIgnoreCase("abc", null) = "abc"
+     * Strings.CI.prependIfMissingIgnoreCase("", "xyz") = "xyz"
+     * Strings.CI.prependIfMissingIgnoreCase("abc", "xyz") = "xyzabc"
+     * Strings.CI.prependIfMissingIgnoreCase("xyzabc", "xyz") = "xyzabc"
+     * Strings.CI.prependIfMissingIgnoreCase("XYZabc", "xyz") = "XYZabc"
      * </pre>
      * <p>
      * With additional prefixes,
      * </p>
      *
      * <pre>
-     * StringUtils.prependIfMissingIgnoreCase(null, null, null) = null
-     * StringUtils.prependIfMissingIgnoreCase("abc", null, null) = "abc"
-     * StringUtils.prependIfMissingIgnoreCase("", "xyz", null) = "xyz"
-     * StringUtils.prependIfMissingIgnoreCase("abc", "xyz", new 
CharSequence[]{null}) = "xyzabc"
-     * StringUtils.prependIfMissingIgnoreCase("abc", "xyz", "") = "abc"
-     * StringUtils.prependIfMissingIgnoreCase("abc", "xyz", "mno") = "xyzabc"
-     * StringUtils.prependIfMissingIgnoreCase("xyzabc", "xyz", "mno") = 
"xyzabc"
-     * StringUtils.prependIfMissingIgnoreCase("mnoabc", "xyz", "mno") = 
"mnoabc"
-     * StringUtils.prependIfMissingIgnoreCase("XYZabc", "xyz", "mno") = 
"XYZabc"
-     * StringUtils.prependIfMissingIgnoreCase("MNOabc", "xyz", "mno") = 
"MNOabc"
+     * Strings.CI.prependIfMissingIgnoreCase(null, null, null) = null
+     * Strings.CI.prependIfMissingIgnoreCase("abc", null, null) = "abc"
+     * Strings.CI.prependIfMissingIgnoreCase("", "xyz", null) = "xyz"
+     * Strings.CI.prependIfMissingIgnoreCase("abc", "xyz", new 
CharSequence[]{null}) = "xyzabc"
+     * Strings.CI.prependIfMissingIgnoreCase("abc", "xyz", "") = "abc"
+     * Strings.CI.prependIfMissingIgnoreCase("abc", "xyz", "mno") = "xyzabc"
+     * Strings.CI.prependIfMissingIgnoreCase("xyzabc", "xyz", "mno") = "xyzabc"
+     * Strings.CI.prependIfMissingIgnoreCase("mnoabc", "xyz", "mno") = "mnoabc"
+     * Strings.CI.prependIfMissingIgnoreCase("XYZabc", "xyz", "mno") = "XYZabc"
+     * Strings.CI.prependIfMissingIgnoreCase("MNOabc", "xyz", "mno") = "MNOabc"
      * </pre>
      *
      * @param str      The string.
@@ -1041,6 +1041,50 @@ public abstract class Strings {
         return prefix + str;
     }
 
+    /**
+     * Removes all occurrences of a substring from within the source string.
+     *
+     * <p>
+     * A {@code null} source string will return {@code null}. An empty ("") 
source string will return the empty string. A {@code null} remove string will 
return
+     * the source string. An empty ("") remove string will return the source 
string.
+     * </p>
+     *
+     * <p>
+     * Case-sensitive examples
+     * </p>
+     *
+     * <pre>
+     * Strings.CS.remove(null, *)        = null
+     * Strings.CS.remove("", *)          = ""
+     * Strings.CS.remove(*, null)        = *
+     * Strings.CS.remove(*, "")          = *
+     * Strings.CS.remove("queued", "ue") = "qd"
+     * Strings.CS.remove("queued", "zz") = "queued"
+     * </pre>
+     *
+     * <p>
+     * Case-insensitive examples
+     * </p>
+     *
+     * <pre>
+     * Strings.CI.removeIgnoreCase(null, *)        = null
+     * Strings.CI.removeIgnoreCase("", *)          = ""
+     * Strings.CI.removeIgnoreCase(*, null)        = *
+     * Strings.CI.removeIgnoreCase(*, "")          = *
+     * Strings.CI.removeIgnoreCase("queued", "ue") = "qd"
+     * Strings.CI.removeIgnoreCase("queued", "zz") = "queued"
+     * Strings.CI.removeIgnoreCase("quEUed", "UE") = "qd"
+     * Strings.CI.removeIgnoreCase("queued", "zZ") = "queued"
+     * </pre>
+     *
+     * @param str    the source String to search, may be null
+     * @param remove the String to search for and remove, may be null
+     * @return the substring with the string removed if found, {@code null} if 
null String input
+     */
+    public String remove(final String str, final String remove) {
+        return replace(str, remove, StringUtils.EMPTY, -1);
+    }
+
     /**
      * Case-insensitive removal of a substring if it is at the end of a source 
string, otherwise returns the source string.
      *
@@ -1054,28 +1098,28 @@ public abstract class Strings {
      * </p>
      *
      * <pre>
-     * StringUtils.removeEnd(null, *)      = null
-     * StringUtils.removeEnd("", *)        = ""
-     * StringUtils.removeEnd(*, null)      = *
-     * StringUtils.removeEnd("www.domain.com", ".com.")  = "www.domain.com"
-     * StringUtils.removeEnd("www.domain.com", ".com")   = "www.domain"
-     * StringUtils.removeEnd("www.domain.com", "domain") = "www.domain.com"
-     * StringUtils.removeEnd("abc", "")    = "abc"
+     * Strings.CS.removeEnd(null, *)      = null
+     * Strings.CS.removeEnd("", *)        = ""
+     * Strings.CS.removeEnd(*, null)      = *
+     * Strings.CS.removeEnd("www.domain.com", ".com.")  = "www.domain.com"
+     * Strings.CS.removeEnd("www.domain.com", ".com")   = "www.domain"
+     * Strings.CS.removeEnd("www.domain.com", "domain") = "www.domain.com"
+     * Strings.CS.removeEnd("abc", "")    = "abc"
      * </pre>
      * <p>
      * Case-insensitive examples
      * </p>
      *
      * <pre>
-     * StringUtils.removeEndIgnoreCase(null, *)      = null
-     * StringUtils.removeEndIgnoreCase("", *)        = ""
-     * StringUtils.removeEndIgnoreCase(*, null)      = *
-     * StringUtils.removeEndIgnoreCase("www.domain.com", ".com.")  = 
"www.domain.com"
-     * StringUtils.removeEndIgnoreCase("www.domain.com", ".com")   = 
"www.domain"
-     * StringUtils.removeEndIgnoreCase("www.domain.com", "domain") = 
"www.domain.com"
-     * StringUtils.removeEndIgnoreCase("abc", "")    = "abc"
-     * StringUtils.removeEndIgnoreCase("www.domain.com", ".COM") = 
"www.domain")
-     * StringUtils.removeEndIgnoreCase("www.domain.COM", ".com") = 
"www.domain")
+     * Strings.CI.removeEndIgnoreCase(null, *)      = null
+     * Strings.CI.removeEndIgnoreCase("", *)        = ""
+     * Strings.CI.removeEndIgnoreCase(*, null)      = *
+     * Strings.CI.removeEndIgnoreCase("www.domain.com", ".com.")  = 
"www.domain.com"
+     * Strings.CI.removeEndIgnoreCase("www.domain.com", ".com")   = 
"www.domain"
+     * Strings.CI.removeEndIgnoreCase("www.domain.com", "domain") = 
"www.domain.com"
+     * Strings.CI.removeEndIgnoreCase("abc", "")    = "abc"
+     * Strings.CI.removeEndIgnoreCase("www.domain.com", ".COM") = "www.domain")
+     * Strings.CI.removeEndIgnoreCase("www.domain.COM", ".com") = "www.domain")
      * </pre>
      *
      * @param str    the source String to search, may be null
@@ -1105,27 +1149,27 @@ public abstract class Strings {
      * </p>
      *
      * <pre>
-     * StringUtils.removeStart(null, *)      = null
-     * StringUtils.removeStart("", *)        = ""
-     * StringUtils.removeStart(*, null)      = *
-     * StringUtils.removeStart("www.domain.com", "www.")   = "domain.com"
-     * StringUtils.removeStart("domain.com", "www.")       = "domain.com"
-     * StringUtils.removeStart("www.domain.com", "domain") = "www.domain.com"
-     * StringUtils.removeStart("abc", "")    = "abc"
+     * Strings.CS.removeStart(null, *)      = null
+     * Strings.CS.removeStart("", *)        = ""
+     * Strings.CS.removeStart(*, null)      = *
+     * Strings.CS.removeStart("www.domain.com", "www.")   = "domain.com"
+     * Strings.CS.removeStart("domain.com", "www.")       = "domain.com"
+     * Strings.CS.removeStart("www.domain.com", "domain") = "www.domain.com"
+     * Strings.CS.removeStart("abc", "")    = "abc"
      * </pre>
      * <p>
      * Case-insensitive examples
      * </p>
      *
      * <pre>
-     * StringUtils.removeStartIgnoreCase(null, *)      = null
-     * StringUtils.removeStartIgnoreCase("", *)        = ""
-     * StringUtils.removeStartIgnoreCase(*, null)      = *
-     * StringUtils.removeStartIgnoreCase("www.domain.com", "www.")   = 
"domain.com"
-     * StringUtils.removeStartIgnoreCase("www.domain.com", "WWW.")   = 
"domain.com"
-     * StringUtils.removeStartIgnoreCase("domain.com", "www.")       = 
"domain.com"
-     * StringUtils.removeStartIgnoreCase("www.domain.com", "domain") = 
"www.domain.com"
-     * StringUtils.removeStartIgnoreCase("abc", "")    = "abc"
+     * Strings.CI.removeStartIgnoreCase(null, *)      = null
+     * Strings.CI.removeStartIgnoreCase("", *)        = ""
+     * Strings.CI.removeStartIgnoreCase(*, null)      = *
+     * Strings.CI.removeStartIgnoreCase("www.domain.com", "www.")   = 
"domain.com"
+     * Strings.CI.removeStartIgnoreCase("www.domain.com", "WWW.")   = 
"domain.com"
+     * Strings.CI.removeStartIgnoreCase("domain.com", "www.")       = 
"domain.com"
+     * Strings.CI.removeStartIgnoreCase("www.domain.com", "domain") = 
"www.domain.com"
+     * Strings.CI.removeStartIgnoreCase("abc", "")    = "abc"
      * </pre>
      *
      * @param str    the source String to search, may be null
@@ -1151,28 +1195,28 @@ public abstract class Strings {
      * </p>
      *
      * <pre>
-     * StringUtils.replace(null, *, *)        = null
-     * StringUtils.replace("", *, *)          = ""
-     * StringUtils.replace("any", null, *)    = "any"
-     * StringUtils.replace("any", *, null)    = "any"
-     * StringUtils.replace("any", "", *)      = "any"
-     * StringUtils.replace("aba", "a", null)  = "aba"
-     * StringUtils.replace("aba", "a", "")    = "b"
-     * StringUtils.replace("aba", "a", "z")   = "zbz"
+     * Strings.CS.replace(null, *, *)        = null
+     * Strings.CS.replace("", *, *)          = ""
+     * Strings.CS.replace("any", null, *)    = "any"
+     * Strings.CS.replace("any", *, null)    = "any"
+     * Strings.CS.replace("any", "", *)      = "any"
+     * Strings.CS.replace("aba", "a", null)  = "aba"
+     * Strings.CS.replace("aba", "a", "")    = "b"
+     * Strings.CS.replace("aba", "a", "z")   = "zbz"
      * </pre>
      * <p>
      * Case-insensitive examples
      * </p>
      *
      * <pre>
-     * StringUtils.replaceIgnoreCase(null, *, *)        = null
-     * StringUtils.replaceIgnoreCase("", *, *)          = ""
-     * StringUtils.replaceIgnoreCase("any", null, *)    = "any"
-     * StringUtils.replaceIgnoreCase("any", *, null)    = "any"
-     * StringUtils.replaceIgnoreCase("any", "", *)      = "any"
-     * StringUtils.replaceIgnoreCase("aba", "a", null)  = "aba"
-     * StringUtils.replaceIgnoreCase("abA", "A", "")    = "b"
-     * StringUtils.replaceIgnoreCase("aba", "A", "z")   = "zbz"
+     * Strings.CI.replaceIgnoreCase(null, *, *)        = null
+     * Strings.CI.replaceIgnoreCase("", *, *)          = ""
+     * Strings.CI.replaceIgnoreCase("any", null, *)    = "any"
+     * Strings.CI.replaceIgnoreCase("any", *, null)    = "any"
+     * Strings.CI.replaceIgnoreCase("any", "", *)      = "any"
+     * Strings.CI.replaceIgnoreCase("aba", "a", null)  = "aba"
+     * Strings.CI.replaceIgnoreCase("abA", "A", "")    = "b"
+     * Strings.CI.replaceIgnoreCase("aba", "A", "z")   = "zbz"
      * </pre>
      *
      * @see #replace(String text, String searchString, String replacement, int 
max)
@@ -1197,36 +1241,36 @@ public abstract class Strings {
      * </p>
      *
      * <pre>
-     * StringUtils.replace(null, *, *, *)         = null
-     * StringUtils.replace("", *, *, *)           = ""
-     * StringUtils.replace("any", null, *, *)     = "any"
-     * StringUtils.replace("any", *, null, *)     = "any"
-     * StringUtils.replace("any", "", *, *)       = "any"
-     * StringUtils.replace("any", *, *, 0)        = "any"
-     * StringUtils.replace("abaa", "a", null, -1) = "abaa"
-     * StringUtils.replace("abaa", "a", "", -1)   = "b"
-     * StringUtils.replace("abaa", "a", "z", 0)   = "abaa"
-     * StringUtils.replace("abaa", "a", "z", 1)   = "zbaa"
-     * StringUtils.replace("abaa", "a", "z", 2)   = "zbza"
-     * StringUtils.replace("abaa", "a", "z", -1)  = "zbzz"
+     * Strings.CS.replace(null, *, *, *)         = null
+     * Strings.CS.replace("", *, *, *)           = ""
+     * Strings.CS.replace("any", null, *, *)     = "any"
+     * Strings.CS.replace("any", *, null, *)     = "any"
+     * Strings.CS.replace("any", "", *, *)       = "any"
+     * Strings.CS.replace("any", *, *, 0)        = "any"
+     * Strings.CS.replace("abaa", "a", null, -1) = "abaa"
+     * Strings.CS.replace("abaa", "a", "", -1)   = "b"
+     * Strings.CS.replace("abaa", "a", "z", 0)   = "abaa"
+     * Strings.CS.replace("abaa", "a", "z", 1)   = "zbaa"
+     * Strings.CS.replace("abaa", "a", "z", 2)   = "zbza"
+     * Strings.CS.replace("abaa", "a", "z", -1)  = "zbzz"
      * </pre>
      * <p>
      * Case-insensitive examples
      * </p>
      *
      * <pre>
-     * StringUtils.replaceIgnoreCase(null, *, *, *)         = null
-     * StringUtils.replaceIgnoreCase("", *, *, *)           = ""
-     * StringUtils.replaceIgnoreCase("any", null, *, *)     = "any"
-     * StringUtils.replaceIgnoreCase("any", *, null, *)     = "any"
-     * StringUtils.replaceIgnoreCase("any", "", *, *)       = "any"
-     * StringUtils.replaceIgnoreCase("any", *, *, 0)        = "any"
-     * StringUtils.replaceIgnoreCase("abaa", "a", null, -1) = "abaa"
-     * StringUtils.replaceIgnoreCase("abaa", "a", "", -1)   = "b"
-     * StringUtils.replaceIgnoreCase("abaa", "a", "z", 0)   = "abaa"
-     * StringUtils.replaceIgnoreCase("abaa", "A", "z", 1)   = "zbaa"
-     * StringUtils.replaceIgnoreCase("abAa", "a", "z", 2)   = "zbza"
-     * StringUtils.replaceIgnoreCase("abAa", "a", "z", -1)  = "zbzz"
+     * Strings.CI.replaceIgnoreCase(null, *, *, *)         = null
+     * Strings.CI.replaceIgnoreCase("", *, *, *)           = ""
+     * Strings.CI.replaceIgnoreCase("any", null, *, *)     = "any"
+     * Strings.CI.replaceIgnoreCase("any", *, null, *)     = "any"
+     * Strings.CI.replaceIgnoreCase("any", "", *, *)       = "any"
+     * Strings.CI.replaceIgnoreCase("any", *, *, 0)        = "any"
+     * Strings.CI.replaceIgnoreCase("abaa", "a", null, -1) = "abaa"
+     * Strings.CI.replaceIgnoreCase("abaa", "a", "", -1)   = "b"
+     * Strings.CI.replaceIgnoreCase("abaa", "a", "z", 0)   = "abaa"
+     * Strings.CI.replaceIgnoreCase("abaa", "A", "z", 1)   = "zbaa"
+     * Strings.CI.replaceIgnoreCase("abAa", "a", "z", 2)   = "zbza"
+     * Strings.CI.replaceIgnoreCase("abAa", "a", "z", -1)  = "zbzz"
      * </pre>
      *
      * @param text         text to search and replace in, may be null
@@ -1275,14 +1319,14 @@ public abstract class Strings {
      * </p>
      *
      * <pre>
-     * StringUtils.replaceOnce(null, *, *)        = null
-     * StringUtils.replaceOnce("", *, *)          = ""
-     * StringUtils.replaceOnce("any", null, *)    = "any"
-     * StringUtils.replaceOnce("any", *, null)    = "any"
-     * StringUtils.replaceOnce("any", "", *)      = "any"
-     * StringUtils.replaceOnce("aba", "a", null)  = "aba"
-     * StringUtils.replaceOnce("aba", "a", "")    = "ba"
-     * StringUtils.replaceOnce("aba", "a", "z")   = "zba"
+     * Strings.CS.replaceOnce(null, *, *)        = null
+     * Strings.CS.replaceOnce("", *, *)          = ""
+     * Strings.CS.replaceOnce("any", null, *)    = "any"
+     * Strings.CS.replaceOnce("any", *, null)    = "any"
+     * Strings.CS.replaceOnce("any", "", *)      = "any"
+     * Strings.CS.replaceOnce("aba", "a", null)  = "aba"
+     * Strings.CS.replaceOnce("aba", "a", "")    = "ba"
+     * Strings.CS.replaceOnce("aba", "a", "z")   = "zba"
      * </pre>
      *
      * <p>
@@ -1290,15 +1334,15 @@ public abstract class Strings {
      * </p>
      *
      * <pre>
-     * StringUtils.replaceOnceIgnoreCase(null, *, *)        = null
-     * StringUtils.replaceOnceIgnoreCase("", *, *)          = ""
-     * StringUtils.replaceOnceIgnoreCase("any", null, *)    = "any"
-     * StringUtils.replaceOnceIgnoreCase("any", *, null)    = "any"
-     * StringUtils.replaceOnceIgnoreCase("any", "", *)      = "any"
-     * StringUtils.replaceOnceIgnoreCase("aba", "a", null)  = "aba"
-     * StringUtils.replaceOnceIgnoreCase("aba", "a", "")    = "ba"
-     * StringUtils.replaceOnceIgnoreCase("aba", "a", "z")   = "zba"
-     * StringUtils.replaceOnceIgnoreCase("FoOFoofoo", "foo", "") = "Foofoo"
+     * Strings.CI.replaceOnceIgnoreCase(null, *, *)        = null
+     * Strings.CI.replaceOnceIgnoreCase("", *, *)          = ""
+     * Strings.CI.replaceOnceIgnoreCase("any", null, *)    = "any"
+     * Strings.CI.replaceOnceIgnoreCase("any", *, null)    = "any"
+     * Strings.CI.replaceOnceIgnoreCase("any", "", *)      = "any"
+     * Strings.CI.replaceOnceIgnoreCase("aba", "a", null)  = "aba"
+     * Strings.CI.replaceOnceIgnoreCase("aba", "a", "")    = "ba"
+     * Strings.CI.replaceOnceIgnoreCase("aba", "a", "z")   = "zba"
+     * Strings.CI.replaceOnceIgnoreCase("FoOFoofoo", "foo", "") = "Foofoo"
      * </pre>
      *
      * @see #replace(String text, String searchString, String replacement, int 
max)
@@ -1323,11 +1367,11 @@ public abstract class Strings {
      * </p>
      *
      * <pre>
-     * StringUtils.startsWith(null, null)      = true
-     * StringUtils.startsWith(null, "abc")     = false
-     * StringUtils.startsWith("abcdef", null)  = false
-     * StringUtils.startsWith("abcdef", "abc") = true
-     * StringUtils.startsWith("ABCDEF", "abc") = false
+     * Strings.CS.startsWith(null, null)      = true
+     * Strings.CS.startsWith(null, "abc")     = false
+     * Strings.CS.startsWith("abcdef", null)  = false
+     * Strings.CS.startsWith("abcdef", "abc") = true
+     * Strings.CS.startsWith("ABCDEF", "abc") = false
      * </pre>
      *
      * <p>
@@ -1335,11 +1379,11 @@ public abstract class Strings {
      * </p>
      *
      * <pre>
-     * StringUtils.startsWithIgnoreCase(null, null)      = true
-     * StringUtils.startsWithIgnoreCase(null, "abc")     = false
-     * StringUtils.startsWithIgnoreCase("abcdef", null)  = false
-     * StringUtils.startsWithIgnoreCase("abcdef", "abc") = true
-     * StringUtils.startsWithIgnoreCase("ABCDEF", "abc") = true
+     * Strings.CI.startsWithIgnoreCase(null, null)      = true
+     * Strings.CI.startsWithIgnoreCase(null, "abc")     = false
+     * Strings.CI.startsWithIgnoreCase("abcdef", null)  = false
+     * Strings.CI.startsWithIgnoreCase("abcdef", "abc") = true
+     * Strings.CI.startsWithIgnoreCase("ABCDEF", "abc") = true
      * </pre>
      *
      * @see String#startsWith(String)


Reply via email to