本文详解如何在 java 中正确实现字符串中字母大小写的逐字符互换(小写变大写、大写变小写),指出常见逻辑错误,并提供高效、可读性强的解决方案。
原始代码存在多个关键问题:
put += ... 会频繁创建新 String 对象,时间复杂度 O(n²),应避免; ✅ 正确做法是:对每个字符独立判断其大小写属性,并做对应转换;非字母字符原样保留;优先使用可变字符串(如 StringBuilder)提升性能。
以下是推荐的现代 Java 实现(兼容 JDK 8+):
public static String toAlternativeCase(String str) {
if (str == null) return null;
StringBuilder result = new StringBuilder(str.length());
for (char c : str.toCharArray()) {
if (Character.isLowerCase(c)) {
result.append(Character.toUpperCase(c));
} else if (Character.isUpperCase(c)) {
result.append(Character.toLowerCase(c));
} else {
result.append(c); // 保留数字、空格、符号等
}
}
return result.toString();
}? 调用示例:
public static void main(String[] args) {
String input = "Elmar DidOkLTWdeee";
System.out.println(toAlternativeCase(input));
// 输出:eLMAR dIDoKltwDEEE
}⚠️ 注意事项:
总结:大小写互换本质是逐字符映射操作,核心在于分类明确、覆盖完整、性能可控。摒弃字符串累加与嵌套误判,采用 StringBuilder + 显式分支判断,即可写出健壮、高效、易维护的转换方法。