public static String splitCamelCaseToReadableText( String camelCase ) {
        // this implementation is due to http://stackoverflow.com/users/276101/polygenelubricants
        // it is taken from his answer to
        // http://stackoverflow.com/questions/2559759/how-do-i-convert-camelcase-into-human-readable-names-in-java
        return camelCase.replaceAll(
            String.format( "%s|%s|%s",
                "(?<=[A-Z])(?=[A-Z][a-z])",
                "(?<=[^A-Z])(?=[A-Z])",
                "(?<=[A-Za-z])(?=[^A-Za-z])"
                ),
            " "
            );
    }
Returns the given text with the first letter in upper case.

<h2>Examples:</h2>
<pre>
capitalize("hi") == "Hi"
capitalize("Hi") == "Hi"
capitalize("hi there") == "hi there"
capitalize("") == ""
capitalize(null) == null
</pre>
@param text the text to capitalize
@return text with the first letter in upper case
jgiven-core/src/main/java/com/tngtech/jgiven/impl/util/WordUtil.java