将 Java 字符串从所有大写字母(用下划线分隔的单词)转换为 CamelCase(无单词分隔符)的最简单方法是什么?

2022-08-31 06:49:54

标题几乎说明了一切。在Java中,我可以将字符串从格式转换为格式“”的最简单/最优雅的方法是什么?我认为必须至少有一种方法可以使用正则表达式来做到这一点。"THIS_IS_AN_EXAMPLE_STRING"ThisIsAnExampleStringString.replaceAll()

我最初的想法是:在字符串前面加上下划线(),将整个字符串转换为小写,然后使用eplaceAll将下划线前面的每个字符与其大写版本进行转换。_


答案 1

另一种选择是使用谷歌番石榴com.google.common.base.CaseFormat

乔治·霍金斯(George Hawkins)用这个用法示例留下了评论:

CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, "THIS_IS_AN_EXAMPLE_STRING");

答案 2

看看Apache Commons lang库中的WordUtils

具体来说,大写的Fully(String str,char[]分隔符)方法应该完成这项工作:

String blah = "LORD_OF_THE_RINGS";
assertEquals("LordOfTheRings", WordUtils.capitalizeFully(blah, '_').replaceAll("_", ""));

绿色酒吧!