为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

绝地无双 2019-10-06 15:06:48
我想编写一种将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"));}
查看完整描述

3 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

您可以使用 org.apache.commons.lang.StringUtils


StringUtils.join(

     StringUtils.splitByCharacterTypeCamelCase("ExampleTest"),

     ' '

);


查看完整回答
反对 回复 2019-10-06
?
慕仙森

TA贡献1827条经验 获得超7个赞

如果您不喜欢“复杂的”正则表达式,并且完全不关心效率,那么我已使用此示例在三个阶段中实现了相同的效果。


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();

它通过了上面所有的测试用例,包括带有数字的那些。


就像我说的那样,这不像在这里的其他一些示例中使用一个正则表达式那样好-但有人可能会发现它很有用。


查看完整回答
反对 回复 2019-10-06
  • 3 回答
  • 0 关注
  • 733 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信