public static String uncapitalize(final String str, final char... delimiters) {
        final int delimLen = delimiters == null ? -1 : delimiters.length;
        if (StringUtils.isEmpty(str) || delimLen == 0) {
            return str;
        }
        final char[] buffer = str.toCharArray();
        boolean uncapitalizeNext = true;
        for (int i = 0; i < buffer.length; i++) {
            final char ch = buffer[i];
            if (isDelimiter(ch, delimiters)) {
                uncapitalizeNext = true;
            } else if (uncapitalizeNext) {
                buffer[i] = Character.toLowerCase(ch);
                uncapitalizeNext = false;
            }
        }
        return new String(buffer);
    }
public static String uncapitalize ( final String str , final char ... delimiters ) { final int delimLen = delimiters == null ? - 1 : delimiters . length ; if ( StringUtils . isEmpty ( str ) || delimLen == 0 ) { return str ; } final char [ ] buffer = str . toCharArray ( ) ; boolean uncapitalizeNext = true ; for ( int i = 0 ; i < buffer . length ; i ++ ) { final char ch = buffer [ i ] ; if ( isDelimiter ( ch , delimiters ) ) { uncapitalizeNext = true ; } else if ( uncapitalizeNext ) { buffer [ i ] = Character . toLowerCase ( ch ) ; uncapitalizeNext = false ; } } return new String ( buffer ) ; }
<p>Uncapitalizes all the whitespace separated words in a String.
Only the first character of each word is changed.</p>

<p>The delimiters represent a set of characters understood to separate words.
The first string character and the first non-delimiter character after a
delimiter will be uncapitalized. </p>

<p>Whitespace is defined by {@link Character#isWhitespace(char)}.
A <code>null</code> input String returns <code>null</code>.</p>

<pre>
WordUtils.uncapitalize(null, *)            = null
WordUtils.uncapitalize("", *)              = ""
WordUtils.uncapitalize(*, null)            = *
WordUtils.uncapitalize(*, new char[0])     = *
WordUtils.uncapitalize("I AM.FINE", {'.'}) = "i AM.fINE"
</pre>

@param str  the String to uncapitalize, may be null
@param delimiters  set of characters to determine uncapitalization, null means whitespace
@return uncapitalized String, <code>null</code> if null String input
@see #capitalize(String)
@since 2.1