Io non starei lì a scomodare le RegEx quando un lavoro così semplice può essere fatto in modo lineare:
codice:
private String separa(String str) {
StringBuilder sb = new StringBuilder( str );
for(int i=0; i<sb.length(); i++) {
if ((i > 0) && Character.isUpperCase(sb.charAt(i))) {
sb.insert(i, ' '); i++;
}
}
return sb.toString();
}
Il metoto prende come parametro la stringa in "camel-case" e restituisce la stringa separata.
codice:
String camelCase = "DiscoMusicIsForUnzUnzPeople";
System.out.println( separa(camelCase) );
Output:
codice:
Disco Music Is For Unz Unz People
Ciao.