java中将字符串首字母转大写需手动实现:先判空,再用character.touppercase()转首字符,拼接substring(1);多单词可用split+join或apache commons lang的stringutils.capitalize/wordutils.capitalizefully。

Java 中将字符串首字母转为大写,核心思路是:提取首字符转大写,再拼接剩余子串。标准库没有直接方法,需手动组合 substring 和 Character.toUpperCase 实现。
基础实现(适用于单个单词)
这是最常用、最清晰的方式,适合处理如 "hello" → "Hello" 这类简单场景:
- 先判断字符串是否为空或长度为 0,避免空指针或越界
- 取第一个字符用
Character.toUpperCase()转大写(比String.toUpperCase()更精准,不依赖 Locale) - 用
substring(1)获取从索引 1 开始的子串(若长度为 1,则返回空字符串)
示例代码:
public static String capitalize(String str) {if (str == null || str.isEmpty()) return str;
return Character.toUpperCase(str.charAt(0)) + str.substring(1);
}
处理多单词字符串(按空格分隔)
若输入是句子如 "java programming is fun",需每个单词首字母大写:
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
- 用
split(" ")拆分(注意:连续空格会导致空字符串,建议用split("\s+")) - 对每个非空单词调用上述基础方法
- 用
String.join(" ", ...)重新拼接
注意:此方式不保留原始空白格式(如制表符、多个空格会统一为单空格)。如需严格保格式,需用正则匹配单词边界或使用 Matcher。
使用 Apache Commons Lang(推荐生产环境)
避免重复造轮子,引入 org.apache.commons:commons-lang3 后可直接用:
-
StringUtils.capitalize("hello")→"Hello" -
StringUtils.capitalize("java programming")→"Java programming"(只大写首个单词) - 若需每个单词首字母大写,用
WordUtils.capitalizeFully("java programming")→"Java Programming"
它自动处理 null、空串、全空白等边界情况,且支持自定义分隔符(如连字符、下划线)。
注意事项与常见陷阱
实际开发中容易忽略的关键点:
- 中文、日文等 Unicode 字符无需“大写”,
toUpperCase()对其无影响;但某些带重音的拉丁字母(如é)可能因 Locale 表现不同,建议显式指定Locale.ROOT - 不要用
str.substring(0,1).toUpperCase() + str.substring(1)——toUpperCase()在某些 Locale 下可能改变字符串长度(如土耳其语),且对非字母字符(数字、符号)无效 - 字符串不可变,所有操作都返回新对象,原字符串不变
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










