java中下划线转驼峰的核心思路是:拆分下划线、首段小写、后续每段首字母大写且其余小写,需处理空值、连续下划线及缩写词;推荐用split("_+")过滤空串后逐段处理。

Java 中将下划线命名(snake_case)转为驼峰格式(camelCase),核心思路是:去掉下划线,把下划线后的字母转大写,首单词小写,其余单词首字母大写。
使用正则表达式 + StringBuffer(推荐,兼容老版本 JDK)
这是最常用、可读性好且无需额外依赖的方式:
- 用 replaceAll("_([a-zA-Z])", "$1") 无法直接实现大小写转换,需配合 append 和 Character.toUpperCase()
- 正确做法是用 split("_") 拆分,再逐段处理
- 首段小写,后续每段首字母大写、其余小写(避免全大写缩写被错误转换)
示例代码:
public static String snakeToCamel(String str) {
if (str == null || str.isEmpty()) return str;
String[] parts = str.split("_");
StringBuilder sb = new StringBuilder();
for (int i = 0; i
使用 Apache Commons Lang(适合已有依赖的项目)
如果项目已引入 commons-lang3(如 3.12+),可用 WordUtils.capitalizeFully() 配合替换:
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
- 先用 StringUtils.replace() 把 "_" 替换为空格
- 再用 WordUtils.capitalizeFully() 首字母大写,最后去掉空格
- 注意:它会把每个单词首字母都大写,所以需手动将第一个字母转小写
示例:
// Maven 依赖:org.apache.commons:commons-lang3
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.text.WordUtils;
String camel = WordUtils.capitalizeFully("user_name_info".replace('_', ' '))
.replace(" ", "");
if (camel.length() > 0) {
camel = Character.toLowerCase(camel.charAt(0)) + camel.substring(1);
}
// 结果:"userNameInfo"
处理边界情况(空、连续下划线、纯大写缩写)
真实场景中常遇到:API_KEY、_private_field、user__name 等。建议增强健壮性:
- 用 split("_+", -1) 处理多个连续下划线(保留空字符串)
- 过滤空字符串(
""),避免生成非法驼峰 - 对缩写词(如
"XML")可约定规则:全部转小写再首字母大写 →"Xml",或保留原意 →"XML"(需业务判断)
Java 8+ 可选:Stream 方式(简洁但稍重)
适合喜欢函数式风格的场景,逻辑清晰但性能略低:
public static String snakeToCamel(String str) {
if (str == null || str.isEmpty()) return str;
String[] parts = str.split("_+");
return Arrays.stream(parts)
.filter(s -> !s.isEmpty())
.map(s -> s.length() == 1 ? s.toLowerCase()
: s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase())
.collect(Collectors.joining())
.replaceFirst("(^.)", s -> s.group().toLowerCase());
}
不复杂但容易忽略大小写和空串处理。按项目环境选一种即可,日常推荐第一种。Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










