public static String underlineToCamel(String underlineName) {
Matcher matcher = Pattern.compile("(_[a-z]{1})").matcher(underlineName);
StringBuffer result = new StringBuffer();
while (matcher.find()) {
String replacement = matcher.group(1);
matcher.appendReplacement(result, replacement.replace("_", "").toUpperCase());
}
matcher.appendTail(result);
return result.toString();
}
另外,Mybatis Generator插件源码中的也提供了类似方法(JavaBeansUtil.getCamelCaseString),这里做了下简单修改
public static String getCamelCaseString(String inputString) {
StringBuilder sb = new StringBuilder();
boolean nextUpperCase = false;
for (int i = 0; i < inputString.length(); i++) {
char c = inputString.charAt(i);
switch (c) {
case '_':
case '-':
case '@':
case '$':
case '#':
case ' ':
case '/':
case '&':
if (sb.length() > 0) {
nextUpperCase = true;
}
break;
default:
if (nextUpperCase) {
sb.append(Character.toUpperCase(c));
nextUpperCase = false;
} else {
sb.append(Character.toLowerCase(c));
}
break;
}
}
return sb.toString();
}