문제 설명 : 영어 알파벳으로 이루어진 문자열 str이 주어집니다. 각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.
문제 풀이
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
StringBuilder result = new StringBuilder();
for (char c : a.toCharArray()) {
if(Character.isUpperCase(c)) {
result.append(Character.toLowerCase(c));
} else {
result.append(Character.toUpperCase(c));
}
}
System.out.print(result.toString());
sc.close();
}
}
결과

정리
StringBuilder : 가변성을 가짐
String : 불변성을 가짐(새로운 객체를 생성하여 문제를 풀 수는 있으나 적합하지 않음)
따라서 해당 문제에서는 StringBuilder 가 더 적합함
1. `StringBuilder` 의 주요 메서드
- append() : 문자열 추가
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
System.out.println(sb.toString()); // 출력: "Hello World"
- insert(index, str) : 특정 위치에 문자열 삽입
StringBuilder sb = new StringBuilder("Hello");
sb.insert(5, " Java");
System.out.println(sb.toString()); // 출력: "Hello Java"
- replace(start, end, str) : 특정 범위 문자열 변경
StringBuilder sb = new StringBuilder("Hello Java");
sb.replace(6, 10, "World");
System.out.println(sb.toString()); // 출력: "Hello World"
- delete(start, end) : 특정 범위 문자열 삭제
StringBuilder sb = new StringBuilder("Hello World");
sb.delete(5, 11);
System.out.println(sb.toString()); // 출력: "Hello"
- reverse() : 문자열 뒤집기
StringBuilder sb = new StringBuilder("Hello");
sb.reverse();
System.out.println(sb.toString()); // 출력: "olleH"
2. Character 클래스의 주요 메서드
- isUpperCase() : 대문자인지 확인
boolean result = Character.isUpperCase('A'); // true
boolean result2 = Character.isUpperCase('b'); // false
- toLowerCase() : 소문자로 변경
char lower = Character.toLowerCase('A'); // 'a'
char lower2 = Character.toLowerCase('b'); // 'b' (소문자는 그대로 유지)
- toUpperCase() : 대문자로 변경
char upper = Character.toUpperCase('a'); // 'A'
char upper2 = Character.toUpperCase('B'); // 'B' (대문자는 그대로 유지)
3. 향상된 for 문
for (타입 변수 : 배열 또는 컬렉션) {
// 반복할 코드
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
System.out.println(num);
}
- for (int num : numbers) 부분에서 int 는 받아들일 변수 타입, num은 변수 명
일반 for 문, 향상된 for 문은 추후 정리!!!
'Java > 코딩테스트' 카테고리의 다른 글
| JAVA - 이스케이프 시퀀스 (0) | 2025.03.16 |
|---|---|
| JAVA - a와 b 출력하기 (0) | 2025.03.07 |
| JAVA - 문자열 출력하기 (0) | 2025.03.07 |
| 배열에서 특정 정수 값 찾기 (0) | 2024.10.07 |