문자열 전체를 바꿀 때
String s = "Hello World";
System.out.println(s.toUpperCase()); // "HELLO WORLD" (전부 대문자로)
System.out.println(s.toLowerCase()); // "hello world" (전부 소문자로)
문자(char) 하나만 바꿀 때
char c = 'a';
char upper = Character.toUpperCase(c); // 'A'
char lower = Character.toLowerCase(c); // 'a'
// 이때도 숫자를 넣으면 그대로 숫자 반환함 ('1' -> '1')
⚠️ 원본은 변하지 않는다!
Java의 String은 불변(Immutable) 객체입니다.
메서드를 호출한다고 해서 원래 변수 s의 값이 바뀌는 게 아닙니다. 반드시 변환된 결과를 다시 변수에 담아야 합니다.
String s = "abc";
s.toUpperCase(); // ❌ 이렇게만 쓰면 아무 일도 안 일어난 것과 같음!
System.out.println(s); // 결과: "abc" (여전히 소문자 😱)
// ✅ 올바른 사용법: 반환값을 다시 저장해야 함
s = s.toUpperCase();
System.out.println(s); // 결과: "ABC"
⚠️ 알파벳이 아닌 것(숫자, 특수문자, 한글 등)은 무시하고 그대로 둡니다.
에러가 나거나 사라지지 않습니다.
String s = "3rd Floor!"; // 숫자('3')와 특수문자('!') 포함
System.out.println(s.toUpperCase());
// 결과: "3RD FLOOR!"
// -> 'r', 'd', 'f', 'l', 'o' 만 대문자로 바뀜. 나머진 그대로.
Java의 String은 불변(Immutable) 객체입니다.
메서드를 호출한다고 해서 원래 변수 s의 값이 바뀌는 게 아닙니다. 반드시 변환된 결과를 다시 변수에 담아야 합니다.
에러가 나거나 사라지지 않습니다.