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 获取。


原始标题:String toLowerCase and toUpperCase Methods in Java