Java中String大小写转换用toLowerCase()和toUpperCase(),基于Locale;字符替换用replace()(字面)、replaceAll()和replaceFirst()(正则);复杂逻辑需StringBuilder或Pattern+Matcher。

Java 中 String 的大小写转换和字符替换操作,主要依靠内置方法完成。String 是不可变类,所有操作都会返回新字符串,原字符串不受影响。
大小写转换:toLowerCase() 和 toUpperCase()
这两个方法用于整体转换字符串的大小写,基于默认区域设置(Locale)进行转换,一般情况下满足日常需求。
- toLowerCase():将所有大写字母转为小写,非字母字符保持不变
- toUpperCase():将所有小写字母转为大写,非字母字符保持不变
示例:
String s = "Hello123!";String lower = s.toLowerCase(); // "hello123!"
String upper = s.toUpperCase(); // "HELLO123!"
更精准的大小写处理:指定 Locale
某些语言(如土耳其语)中,i 和 I 的大小写映射与英语不同。若需国际化支持,应显式传入 Locale:
立即学习“Java免费学习笔记(深入)”;
- toLowerCase(Locale.TURKISH)
- toUpperCase(Locale.ENGLISH)
避免因默认 Locale 导致意外结果,尤其在服务器多语言环境或用户输入处理时建议明确指定。
字符级替换:replace()、replaceAll()、replaceFirst()
String 提供了三种常用替换方法,区别在于匹配方式和目标类型:
- replace(CharSequence target, CharSequence replacement):按字面值替换所有匹配项(不支持正则)
- replaceAll(String regex, String replacement):按正则表达式替换所有匹配项
- replaceFirst(String regex, String replacement):仅替换第一个正则匹配项
示例:
String text = "a-b-c";text.replace("-", "_"); // "a_b_c"(字面替换)
text.replaceAll("\d+", "X"); // 原串无数字,仍为 "a-b-c"
"123abc456".replaceAll("\d+", "N"); // "NabcN"
批量/条件替换:结合 StringBuilder 或正则分组
若需复杂逻辑(如只替换单词首字母为大写、或按位置替换),单纯 replace 系列不够用,可考虑:
- 用 toCharArray() 遍历修改后构造新字符串
- 用 StringBuilder 构建并逐段 append/replace
- 用 Pattern + Matcher 实现带逻辑的替换(如 matcher.replaceAll(mr -> ...)
例如首字母大写:
String s = "hello world";String capitalized = Arrays.stream(s.split(" "))
.map(word -> word.isEmpty() ? word : Character.toUpperCase(word.charAt(0)) + word.substring(1).toLowerCase())
.collect(Collectors.joining(" "));
// "Hello World"


















