Java 字符串小写转大写
Java 中字符串小写转大写的核心是使用
String类自带的toUpperCase()方法,该方法有两个常用重载:
toUpperCase():默认使用系统默认语言环境(Locale)转换,简单易用;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!@#
代码关键解释
- toUpperCase () 核心:该方法仅转换字符串中的小写字母(a-z),数字、符号、大写字母保持不变;
- Locale 指定:
toUpperCase(Locale.ENGLISH)避免因系统语言(如中文、法语)导致的字符转换差异,是企业开发的最佳实践; - 空值处理:
- 先判断
input == null,防止调用isEmpty()或toUpperCase()时抛出NullPointerException; - 空字符串(
"")直接返回,无需多余计算;
- 先判断
- 字符兼容性:数字、特殊符号(!@# 等)不会被转换,仅字母会被转为大写。
浙公网安备 33010602011771号