问题
标题基本概括了所有内容。我可以用Java格式将格式为"THIS_IS_AN_EXAMPLE_STRING"
的字符串转换为格式为"ThisIsAnExampleString
"的最简单/最优雅的方法是什么?我认为至少有一种方法可以使用2669642787和正则表达式来完成它。
我最初的想法是:在字符串前加下划线(_
),将整个字符串转换为小写,然后使用replaceAll将每个前面带下划线的字符转换为大写字母。
#1 热门回答(134 赞)
另一个选择是使用Google Guava的com.google.common.base.CaseFormat
George Hawkins在这个使用示例下发表评论:
CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, "THIS_IS_AN_EXAMPLE_STRING");
#2 热门回答(105 赞)
看看WordUtils in the Apache Commons langlibrary:
具体来说,capitalizeFully(String str,char [] delimiters)方法应该完成这项工作:
String blah = "LORD_OF_THE_RINGS";
assertEquals("LordOfTheRings", WordUtils.capitalizeFully(blah, new char[]{'_'}).replaceAll("_", ""));
绿吧!
#3 热门回答(73 赞)
static String toCamelCase(String s){
String[] parts = s.split("_");
String camelCaseString = "";
for (String part : parts){
camelCaseString = camelCaseString + toProperCase(part);
}
return camelCaseString;
}
static String toProperCase(String s) {
return s.substring(0, 1).toUpperCase() +
s.substring(1).toLowerCase();
}
注意:你需要添加参数验证。