java 대소문자 바꾸는 법

2026. 2. 3. 13:07·BackEnd/Java

programmers 기초 문제를 풀다가 너무 오래되어 까먹고 있던 기초 문법을 정리해볼 필요가 있다고 판단하여 오랜만에 블로그에 들어왔다. 앞으로는 꾸준히 작성할 계획이다.

입력받은 문자열에서 대문자 -> 소문자, 소문자 -> 대문자로 변경하는 문제는 백준에서도 몇번 본 적 있는 문제다.

문제를 풀기 위한 방법을 머릿속으로 몇 가지 떠올려 봤을 때 가장 먼저 든 것은 반복문과 java 문법을 활용하여 변경하는 법. 두번째는 반복문을 돌려 ASCII 코드를 활용해서 바꿔주는 법이었다. 두 번째 방법은 하려면 할 수 있겠지만 매우 복잡하고 활용도가 낮기 때문에 기억 속에서 영영 지우기로 한다.

따라서 향상된 for문, toCharArray(), isUpperCase(), isLowerCase()의 개념을 활용하여 풀어보도록 하겠다.

향상된 for문

향상된 for문이란 배열 혹은 컬렉션에서 값만 꺼내어 사용할 때 쓰는 문법이다.

인덱스가 필요 없을 때 쓰는 읽기 전용 반복문이므로 배열값을 바꾸는 과정이 필요하다면 사용하지 말아야 한다.

일반적인 형태는 다음과 같다.

for (자료형 변수 : 배열 or 컬렉션) {

    //

}

가독성을 위해 아래 코드를 적용해본다면 이는 내부적으로 다음과 같다.

for (char c : str.toCharArray()) {

}
char[] temp = str.toCharArray();

for (int i = 0; i < temp.length; i++) {
    char c = temp[i];
}

toCharArray()

toCharArray()는 문자열을 char 배열로 쪼개주는 메서드이다.

예시)

String str = "AbC";

char[] arr = str.toCharArray();

결과)

arr[0] = 'A'
arr[1] = 'b'
arr[2] = 'C'

String은 불변객체이므로 문자 하나씩 직접 수정할 수 없다.

따라서 메서드를 사용하여 문자 배열로 변환한 뒤 작업을 진행해야 한다.

isUpperCase(), isLowerCase()

isUpperCase(), isLowerCase()는 대소문자를 확인하는 메서드이다.

이를 통해 대소문자를 확인하고 toUpperCase(), toLowerCase()를 활용하여 변환해주면 된다.

단, 대문자가 아닌 경우는 소문자로 판단할 수 있기에 isUpperCase()만 사용해도 충분하다.

전체 코드

class Solution {

    public String solution(String str) {

        StringBuilder sb = new StringBuilder();

        for (char c : str.toCharArray()) {

            if (Character.isUpperCase(c)) {
                sb.append(Character.toLowerCase(c));
            } else {
                sb.append(Character.toUpperCase(c));
            }

        }

        return sb.toString();
    }
}

'BackEnd > Java' 카테고리의 다른 글

코딩 테스트에서의 입출력  (0) 2026.05.21
생성자, toString 그리고 getter&setter  (1) 2025.08.08
'BackEnd/Java' 카테고리의 다른 글
  • 코딩 테스트에서의 입출력
  • 생성자, toString 그리고 getter&setter
JK-LEE98
JK-LEE98
백엔드 개발자
  • JK-LEE98
    JK-LEE98
    JK-LEE98
  • 전체
    오늘
    어제
    • 분류 전체보기 (60)
      • 나의 지식 공유 (4)
      • SQL (4)
      • PS (10)
      • BackEnd (32)
        • Java (3)
        • Spring (4)
        • 내일배움캠프 (20)
        • 프로그래머스 데브코스 (5)
      • 건강한 나 되기🍀 (10)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
JK-LEE98
java 대소문자 바꾸는 법
상단으로

티스토리툴바