首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 字符串大小寫轉換:兩種高效實現方式對比

     編輯:Java 綜合教學

Java 字符串大小寫轉換:兩種高效實現方式對比

實現字符串中字母大小寫互換(大寫變小寫、小寫變大寫),非字母字符保持不變。

方式一:利用 String.toLowerCase()/toUpperCase() 對比

public static String exchangeStringA(String s) {
    StringBuffer result = new StringBuffer();
    String lower = s.toLowerCase();
    String upper = s.toUpperCase();
    for (int i = 0; i < s.length(); i++) {
        if (s.charAt(i) == lower.charAt(i)) {
            // 原字符是小寫,轉大寫
            result.append(upper.charAt(i));
        } else {
            // 原字符是大寫,轉小寫
            result.append(lower.charAt(i));
        }
    }
    return result.toString();
}

方式二:基於 ASCII 碼運算(大小寫相差 32)

public static String exchangeStringB(String s) {
    char[] c = s.toCharArray();
    for (int i = 0; i < c.length; i++) {
        if (c[i] >= 65 && c[i] <= 90) {      // 'A'-'Z'
            c[i] = (char) (c[i] + 32);       // 轉小寫
        } else if (c[i] >= 97 && c[i] <= 122) { // 'a'-'z'
            c[i] = (char) (c[i] - 32);       // 轉大寫
        }
        // 非字母字符不變
    }
    return String.valueOf(c);
}

完整測試類

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        System.out.println(exchangeStringA(s));
        System.out.println(exchangeStringB(s));
    }
    // ... 兩個方法放這裡
}

核心差異

維度方式一方式二
原理調用 JDK 內置轉換方法對比直接操作字符 ASCII 碼
可讀性高,語義清晰較低,依賴魔術數字 32
性能創建額外字符串對象原地修改字符數組,效率略高
適用場景一般業務代碼高頻調用、性能敏感場景

建議: 方式一碼風格更佳,方式二適合極致優化。實際開發中也可直接使用 Apache Commons Lang StringUtils.swapCase()。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved