public static String[] splitPreserveAllTokens(String str) {
        return splitWorker(str, null, -1, true);
    }
<p>Splits the provided text into an array, using whitespace as the
separator, preserving all tokens, including empty tokens created by
adjacent separators. This is an alternative to using StringTokenizer.
Whitespace is defined by {@link Character#isWhitespace(char)}.</p>

<p>The separator is not included in the returned String array.
Adjacent separators are treated as separators for empty tokens.
For more control over the split use the StrTokenizer class.</p>

<p>A {@code null} input String returns {@code null}.</p>

<pre>
StringUtils.splitPreserveAllTokens(null)       = null
StringUtils.splitPreserveAllTokens("")         = []
StringUtils.splitPreserveAllTokens("abc def")  = ["abc", "def"]
StringUtils.splitPreserveAllTokens("abc  def") = ["abc", "", "def"]
StringUtils.splitPreserveAllTokens(" abc ")    = ["", "abc", ""]
</pre>

@param str  the String to parse, may be {@code null}
@return an array of parsed Strings, {@code null} if null String input
@since 2.1
android/android_framework/base/src/main/java/lang3/StringUtils.java