其实是很简单的正则表达式转换
直接上代码
/**
* 驼峰转下划线
* @param str 目标字符串
* @return:
*/
public static String humpToUnderline(String str) {
String regex = "([A-Z])";
Matcher matcher = Pattern.compile(regex).matcher(str);
while (matcher.find()) {
String target = matcher.group();
str = str.replaceAll(target, "_"+target.toLowerCase());
}
return str;
}
/**
* 下划线转驼峰
* @param str 目标字符串
* @return:
*/
public static String underlineToHump(String str) {
String regex = "_(.)";
Matcher matcher = Pattern.compile(regex).matcher(str);
while (matcher.find()) {
String target = matcher.group(1);
str = str.replaceAll("_"+target, target.toUpperCase());
}
return str;
}
测试
System.out.println(humpToUnderline("humpToUnderline"));
System.out.println(underlineToHump("hump_to_underline"));
结果
hump_to_underline
humpToUnderline
js 版的更加简单: /qq_31254489/article/details/115843025