in jspwiki-util/src/main/java/org/apache/wiki/util/TextUtil.java [595:631]
public static String beautifyString( final String s, final String space ) {
if( s == null || s.isEmpty() ) {
return "";
}
final StringBuilder result = new StringBuilder();
int cur = s.charAt( 0 );
int curKind = getCharKind( cur );
int prevKind = LOWER;
int nextKind;
int next;
int nextPos = 1;
while( curKind != EOI ) {
next = ( nextPos < s.length() ) ? s.charAt( nextPos++ ) : -1;
nextKind = getCharKind( next );
if( ( prevKind == UPPER ) && ( curKind == UPPER ) && ( nextKind == LOWER ) ) {
result.append( space );
result.append( ( char ) cur );
} else {
result.append((char) cur );
if( ( ( curKind == UPPER ) && (nextKind == DIGIT) )
|| ( ( curKind == LOWER ) && ( ( nextKind == DIGIT ) || ( nextKind == UPPER ) ) )
|| ( ( curKind == DIGIT ) && ( ( nextKind == UPPER ) || ( nextKind == LOWER ) ) ) ) {
result.append( space );
}
}
prevKind = curKind;
cur = next;
curKind = nextKind;
}
return result.toString();
}