1. 概述
本文将详细介绍 Java 中 String
类提供的两个常用方法:toUpperCase()
和 toLowerCase()
。
我们以一个简单的字符串变量 name
开始:
String name = "John Doe";
2. 转换为大写
使用 toUpperCase()
方法可以将字符串转换为全大写形式:
String uppercaseName = name.toUpperCase();
此时 uppercaseName
的值为 "JOHN DOE"
:
assertEquals("JOHN DOE", uppercaseName);
⚠️ 注意:Java 中的 String
是不可变对象,调用 toUpperCase()
会返回一个新字符串,原始字符串 name
的值不会被修改。
3. 转换为小写
与 toUpperCase()
类似,toLowerCase()
可以将字符串转换为全小写形式:
String lowercaseName = name.toLowerCase();
此时 lowercaseName
的值为 "john doe"
:
assertEquals("john doe", lowercaseName);
✅ 同样,调用 toLowerCase()
也不会修改原字符串内容。
4. 使用 Locale 控制大小写转换规则
在某些语言中,大小写转换规则与英语不同。Java 提供了带 Locale
参数的重载方法,支持根据特定语言环境进行转换。
示例:土耳其语中的 i 转换
在土耳其语中,小写 i
(Unicode: \u0069
)转换为大写时应为 İ
(Unicode: \u0130
),而不是英语中的 I
(Unicode: \u0049
)。
代码示例如下:
Locale TURKISH = new Locale("tr");
System.out.println("\u0069".toUpperCase()); // 输出 I
System.out.println("\u0069".toUpperCase(TURKISH)); // 输出 İ
验证结果:
assertEquals("\u0049", "\u0069".toUpperCase());
assertEquals("\u0130", "\u0069".toUpperCase(TURKISH));
小写转换示例
同样,大写 I
(\u0049
)在转换为小写时,根据语言环境可能变为 i
或 ı
(无点小写 i):
System.out.println("\u0049".toLowerCase()); // 输出 i
System.out.println("\u0049".toLowerCase(TURKISH)); // 输出 ı
验证结果:
assertEquals("\u0069", "\u0049".toLowerCase());
assertEquals("\u0131", "\u0049".toLowerCase(TURKISH));
5. 总结
- Java 的
String
类提供了toUpperCase()
和toLowerCase()
方法用于大小写转换。 - 这两个方法不会修改原字符串,而是返回新字符串。
- 若需支持本地化转换规则,可以传入合适的
Locale
参数。 - 特别注意:在处理多语言场景时(如土耳其语),不指定
Locale
很可能踩坑。
完整示例代码可在 GitHub 获取。