Java String 大小寫轉換

toUpperCase()toLowerCase() 方法用來轉換字串的大小寫。

toUpperCase()

將字串轉換成大寫:

String s = "Hello World";

String upper = s.toUpperCase();
System.out.println(upper);  // "HELLO WORLD"

// 原字串不變
System.out.println(s);  // "Hello World"

toLowerCase()

將字串轉換成小寫:

String s = "Hello World";

String lower = s.toLowerCase();
System.out.println(lower);  // "hello world"

混合範例

String s = "HeLLo WoRLd";

System.out.println(s.toUpperCase());  // "HELLO WORLD"
System.out.println(s.toLowerCase());  // "hello world"

指定語系

可以指定 Locale 來處理特殊語言的大小寫轉換:

import java.util.Locale;

String s = "I";

// 英文
System.out.println(s.toLowerCase(Locale.ENGLISH));  // "i"

// 土耳其文(土耳其語的 I 小寫是 ı,不是 i)
System.out.println(s.toLowerCase(new Locale("tr", "TR")));  // "ı"

實際應用

忽略大小寫比較

String input = "YES";
String expected = "yes";

// 轉換成相同大小寫後比較
if (input.toLowerCase().equals(expected.toLowerCase())) {
    System.out.println("相等");
}

// 或使用 equalsIgnoreCase()
if (input.equalsIgnoreCase(expected)) {
    System.out.println("相等");
}

檢查副檔名

String filename = "Image.JPG";

// 轉成小寫後檢查
String ext = filename.substring(filename.lastIndexOf(".") + 1).toLowerCase();

if (ext.equals("jpg") || ext.equals("png") || ext.equals("gif")) {
    System.out.println("這是圖片檔");
}

標準化輸入

String email = "User@Example.COM";

// Email 通常轉成小寫儲存
String normalizedEmail = email.toLowerCase();
System.out.println(normalizedEmail);  // "user@example.com"

首字母大寫

String name = "alice";

// 首字母大寫
String capitalized = name.substring(0, 1).toUpperCase() + name.substring(1);
System.out.println(capitalized);  // "Alice"

每個單字首字母大寫

String sentence = "hello world java";
String[] words = sentence.split(" ");
StringBuilder result = new StringBuilder();

for (String word : words) {
    if (word.length() > 0) {
        result.append(Character.toUpperCase(word.charAt(0)));
        result.append(word.substring(1));
        result.append(" ");
    }
}

System.out.println(result.toString().trim());  // "Hello World Java"

Character 類別方法

單一字元的大小寫轉換:

char c = 'a';

char upper = Character.toUpperCase(c);  // 'A'
char lower = Character.toLowerCase('B'); // 'b'

// 檢查大小寫
System.out.println(Character.isUpperCase('A'));  // true
System.out.println(Character.isLowerCase('a'));  // true

注意事項

字串是不可變的,轉換後會回傳新字串:

String s = "hello";
s.toUpperCase();  // 沒有賦值,s 不會改變
System.out.println(s);  // "hello"

s = s.toUpperCase();  // 需要賦值
System.out.println(s);  // "HELLO"