Como faço para converter o CamelCase em nomes legíveis por humanos em Java?

Eu gostaria de escrever um método que converta o CamelCase em um nome legível por humanos. Aqui está o caso de teste: public void testSplitCamelCase() { assertEquals("lowercase", splitCamelCase("lowercase")); assertEquals("Class", splitCamelCase("Class")); assertEquals("My Class",...