Java 字符串小写转大写

Java 中字符串小写转大写的核心是使用String类自带的toUpperCase()方法,该方法有两个常用重载:
 
  1. toUpperCase():默认使用系统默认语言环境(Locale)转换,简单易用;
  2. toUpperCase(Locale locale):指定语言环境转换(推荐,避免不同地区的字符转换差异)。
 

示例 1:基础版本(简单转换)

 
适用于无需处理空值、仅需基础转换的场景: 
public class StringToUppercase {
    public static void main(String[] args) {
        // 定义测试字符串(混合大小写、纯小写)
        String str1 = "hello world";
        String str2 = "Java Programming 123";
        
        // 小写转大写(默认Locale)
        String upperStr1 = str1.toUpperCase();
        String upperStr2 = str2.toUpperCase();
        
        // 输出结果
        System.out.println("原始字符串1:" + str1);
        System.out.println("转换后1:" + upperStr1);
        System.out.println("原始字符串2:" + str2);
        System.out.println("转换后2:" + upperStr2);
    }
}
 
 

运行结果:

原始字符串1:hello world
转换后1:HELLO WORLD
原始字符串2:Java Programming 123
转换后2:JAVA PROGRAMMING 123
 
 

示例 2:健壮版本(处理空值 / 空字符串)

 
实际开发中需避免NullPointerException(空指针异常),因此要先校验字符串是否为null或空,同时指定 Locale 保证转换一致性: 
import java.util.Locale;

public class SafeStringToUppercase {
    /**
     * 安全的字符串小写转大写方法
     * @param input 待转换的字符串(可能为null/空)
     * @return 转换后的大写字符串,null返回null,空字符串返回空
     */
    public static String toUpperCaseSafe(String input) {
        // 1. 处理null值:直接返回null,避免空指针
        if (input == null) {
            return null;
        }
        // 2. 处理空字符串:直接返回空,无需转换
        if (input.isEmpty()) {
            return input;
        }
        // 3. 指定Locale(如ENGLISH),避免不同系统Locale导致转换异常
        return input.toUpperCase(Locale.ENGLISH);
    }

    public static void main(String[] args) {
        // 测试不同场景
        String test1 = "mysql relaylog";
        String test2 = ""; // 空字符串
        String test3 = null; // null值
        String test4 = "aBc123!@#"; // 混合字符

        System.out.println("test1转换后:" + toUpperCaseSafe(test1));
        System.out.println("test2转换后:'" + toUpperCaseSafe(test2) + "'"); // 空字符串
        System.out.println("test3转换后:" + toUpperCaseSafe(test3)); // null
        System.out.println("test4转换后:" + toUpperCaseSafe(test4));
    }
}
 
 

运行结果:

test1转换后:MYSQL RELAYLOG
test2转换后:''
test3转换后:null
test4转换后:ABC123!@#
 
 

代码关键解释

 
  1. toUpperCase () 核心:该方法仅转换字符串中的小写字母(a-z),数字、符号、大写字母保持不变;
  2. Locale 指定toUpperCase(Locale.ENGLISH)避免因系统语言(如中文、法语)导致的字符转换差异,是企业开发的最佳实践;
  3. 空值处理
    • 先判断input == null,防止调用isEmpty()toUpperCase()时抛出NullPointerException
    • 空字符串("")直接返回,无需多余计算;
     
  4. 字符兼容性:数字、特殊符号(!@# 等)不会被转换,仅字母会被转为大写。

posted on 2026-01-07 09:08  coding博客  阅读(4)  评论(0)    收藏  举报