stringbuilder可高效将下划线命名转驼峰命名:遍历字符,跳过下划线并标记下一字母大写,遇字母且需大写则转大写后追加,首字母保持小写,支持连续及首尾下划线。

用 StringBuilder 将下划线命名(如 user_name)转为驼峰命名(如 userName),核心是跳过下划线、把后续字母大写,并拼接其余字符。StringBuilder 适合频繁修改字符串,比 String 拼接更高效。
基本处理逻辑
遍历原字符串每个字符:遇到下划线就跳过,并标记下一个字母需大写;其他字符直接追加,若需大写则转成大写后再追加。注意首字符不能大写(除非原串以下划线开头且后面有字母)。
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
关键步骤与代码要点
- 用布尔标志
nextUpperCase记录下一个字母是否要大写 - 跳过下划线字符,设
nextUpperCase = true - 遇到字母且
nextUpperCase为 true 时,用Character.toUpperCase(ch)转大写,然后重置标志 - 非下划线、非字母字符(如数字)直接追加,不触发大写逻辑
- 开头的下划线应被忽略,首个有效字母保持小写(驼峰规则)
一个简洁可用的实现
以下方法支持标准情况(user_name → userName),也兼容连续下划线和开头/结尾下划线:
public static String underlineToCamel(String str) {
if (str == null || str.isEmpty()) return str;
StringBuilder sb = new StringBuilder();
boolean nextUpperCase = false;
for (int i = 0; i
注意事项
- 该方法默认将所有字母转为小写再处理,确保首字母小写(符合 lowerCamelCase)
- 若输入含大小混写(如
USER_NAME),会变成userName,符合常规需求 - 不处理空格、特殊符号,如需扩展可增加
Character.isJavaIdentifierPart()判断 - 性能上 StringBuilder 比 String += 快得多,尤其对长字符串或批量转换
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










