Java/코딩테스트

JAVA - 대소문자 바꿔서 출력하기

cyh0309 2025. 3. 14. 19:05

문제 설명 :  영어 알파벳으로 이루어진 문자열 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