如何在Java中将CamelCase转换为人类可读的名称?

我想编写一种将CamelCase转换为人类可读名称的方法。


这是测试用例:


public void testSplitCamelCase() {

    assertEquals("lowercase", splitCamelCase("lowercase"));

    assertEquals("Class", splitCamelCase("Class"));

    assertEquals("My Class", splitCamelCase("MyClass"));

    assertEquals("HTML", splitCamelCase("HTML"));

    assertEquals("PDF Loader", splitCamelCase("PDFLoader"));

    assertEquals("A String", splitCamelCase("AString"));

    assertEquals("Simple XML Parser", splitCamelCase("SimpleXMLParser"));

    assertEquals("GL 11 Version", splitCamelCase("GL11Version"));

}


绝地无双
浏览 782回答 3
3回答

慕田峪9158850

您可以使用 org.apache.commons.lang.StringUtilsStringUtils.join(     StringUtils.splitByCharacterTypeCamelCase("ExampleTest"),     ' ');

慕仙森

如果您不喜欢“复杂的”正则表达式,并且完全不关心效率,那么我已使用此示例在三个阶段中实现了相同的效果。String name =     camelName.replaceAll("([A-Z][a-z]+)", " $1") // Words beginning with UC             .replaceAll("([A-Z][A-Z]+)", " $1") // "Words" of only UC             .replaceAll("([^A-Za-z ]+)", " $1") // "Words" of non-letters             .trim();它通过了上面所有的测试用例,包括带有数字的那些。就像我说的那样,这不像在这里的其他一些示例中使用一个正则表达式那样好-但有人可能会发现它很有用。
打开App,查看更多内容
随时随地看视频慕课网APP