public static String[] splitPreserveAllTokens(final String str, final String separatorChars, final int max) {
        return splitWorker(str, separatorChars, max, true);
    }
public static String [ ] splitPreserveAllTokens ( final String str , final String separatorChars , final int max ) { return splitWorker ( str , separatorChars , max , true ) ; }
<p>Splits the provided text into an array with a maximum length,
separators specified, preserving all tokens, including empty tokens
created by adjacent separators.</p>

<p>The separator is not included in the returned String array.
Adjacent separators are treated as separators for empty tokens.
Adjacent separators are treated as one separator.</p>

<p>A {@code null} input String returns {@code null}.
A {@code null} separatorChars splits on whitespace.</p>

<p>If more than {@code max} delimited substrings are found, the last
returned string includes all characters after the first {@code max - 1}
returned strings (including separator characters).</p>

<pre>
StringUtils.splitPreserveAllTokens(null, *, *)            = null
StringUtils.splitPreserveAllTokens("", *, *)              = []
StringUtils.splitPreserveAllTokens("ab de fg", null, 0)   = ["ab", "cd", "ef"]
StringUtils.splitPreserveAllTokens("ab   de fg", null, 0) = ["ab", "cd", "ef"]
StringUtils.splitPreserveAllTokens("ab:cd:ef", ":", 0)    = ["ab", "cd", "ef"]
StringUtils.splitPreserveAllTokens("ab:cd:ef", ":", 2)    = ["ab", "cd:ef"]
StringUtils.splitPreserveAllTokens("ab   de fg", null, 2) = ["ab", "  de fg"]
StringUtils.splitPreserveAllTokens("ab   de fg", null, 3) = ["ab", "", " de fg"]
StringUtils.splitPreserveAllTokens("ab   de fg", null, 4) = ["ab", "", "", "de fg"]
</pre>

@param str  the String to parse, may be {@code null}
@param separatorChars  the characters used as the delimiters,
{@code null} splits on whitespace
@param max  the maximum number of elements to include in the
array. A zero or negative value implies no limit
@return an array of parsed Strings, {@code null} if null String input
@since 2.1