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"