public static String replaceEachRepeatedly(String text, String[] searchList, String[] replacementList) {
        // timeToLive should be 0 if not used or nothing to replace, else it's
        // the length of the replace array
        int timeToLive = searchList == null ? 0 : searchList.length;
        return replaceEach(text, searchList, replacementList, true, timeToLive);
    }
<p>
Replaces all occurrences of Strings within another String.
</p>

<p>
A {@code null} reference passed to this method is a no-op, or if
any "search string" or "string to replace" is null, that replace will be
ignored. 
</p>

<pre>
 StringUtils.replaceEach(null, *, *, *) = null
 StringUtils.replaceEach("", *, *, *) = ""
 StringUtils.replaceEach("aba", null, null, *) = "aba"
 StringUtils.replaceEach("aba", new String[0], null, *) = "aba"
 StringUtils.replaceEach("aba", null, new String[0], *) = "aba"
 StringUtils.replaceEach("aba", new String[]{"a"}, null, *) = "aba"
 StringUtils.replaceEach("aba", new String[]{"a"}, new String[]{""}, *) = "b"
 StringUtils.replaceEach("aba", new String[]{null}, new String[]{"a"}, *) = "aba"
 StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"}, *) = "wcte"
 (example of how it repeats)
 StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"}, false) = "dcte"
 StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"}, true) = "tcte"
 StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "ab"}, true) = IllegalStateException
 StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "ab"}, false) = "dcabe"
</pre>

@param text
           text to search and replace in, no-op if null
@param searchList
           the Strings to search for, no-op if null
@param replacementList
           the Strings to replace them with, no-op if null
@return the text with any replacements processed, {@code null} if
        null String input
@throws IllegalStateException
            if the search is repeating and there is an endless loop due
            to outputs of one being inputs to another
@throws IllegalArgumentException
            if the lengths of the arrays are not the same (null is ok,
            and/or size 0)
@since 2.4
android/android_framework/base/src/main/java/lang3/StringUtils.java