[Coding Test_Java] 4. 대소문자 바꿔서 출력하기

김미숙's avatar
Apr 07, 2025
[Coding Test_Java] 4. 대소문자 바꿔서 출력하기

문제 설명

영어 알파벳으로 이루어진 문자열 str이 주어집니다. 각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.

제한사항

  • 1 ≤ str의 길이 ≤ 20
    • str은 알파벳으로 이루어진 문자열입니다.

입출력 예

입력 #1
aBcDeFg
출력 #1
AbCdEfG

문제 풀이

import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); StringBuilder result = new StringBuilder(); for(char c : str.toCharArray()) { if(Character.isLowerCase(c)){ result.append(Character.toUpperCase(c)); } if(Character.isUpperCase(c)){ result.append(Character.toLowerCase(c)); } } System.out.println(result.toString()); } }
notion image
notion image
 

🔹 Java StringBuilder란?

StringBuilder문자열(String)의 변경이 많은 경우 사용하면 좋은 클래스입니다.
자바의 String 객체는 불변(immutable) 이므로, 문자열을 수정할 때마다 새로운 객체가 생성됩니다.
반면, StringBuilder가변(mutable) 객체로, 문자열을 직접 수정할 수 있어 성능이 더 좋습니다.

🔹 StringBuilder 주요 메서드 및 사용법

✅ 1. append() - 문자열 추가

java 복사편집 public class Main { public static void main(String[] args) { StringBuilder sb = new StringBuilder("Hello"); sb.append(" Java"); // 문자열 추가 System.out.println(sb); // Hello Java } }
출력:
nginx 복사편집 Hello Java

✅ 2. insert() - 특정 위치에 문자열 삽입

java 복사편집 public class Main { public static void main(String[] args) { StringBuilder sb = new StringBuilder("Hello Java"); sb.insert(6, "Awesome "); // 6번째 위치에 삽입 System.out.println(sb); // Hello Awesome Java } }
출력:
nginx 복사편집 Hello Awesome Java

✅ 3. replace() - 문자열 변경

java 복사편집 public class Main { public static void main(String[] args) { StringBuilder sb = new StringBuilder("Hello Java"); sb.replace(6, 10, "World"); // "Java" → "World" 변경 System.out.println(sb); // Hello World } }
출력:
nginx 복사편집 Hello World
📝 설명:
  • replace(int start, int end, String str)
  • start부터 end-1까지의 문자열을 str로 변경

✅ 4. delete() - 문자열 삭제

java 복사편집 public class Main { public static void main(String[] args) { StringBuilder sb = new StringBuilder("Hello Java"); sb.delete(6, 10); // "Java" 삭제 System.out.println(sb); // Hello } }
출력:
nginx 복사편집 Hello

✅ 5. reverse() - 문자열 뒤집기

java 복사편집 public class Main { public static void main(String[] args) { StringBuilder sb = new StringBuilder("Hello"); sb.reverse(); // 문자열 뒤집기 System.out.println(sb); // olleH } }
출력:
nginx 복사편집 olleH

✅ 6. toString() - String으로 변환

java 복사편집 public class Main { public static void main(String[] args) { StringBuilder sb = new StringBuilder("Hello Java"); String str = sb.toString(); // String 변환 System.out.println(str); } }

🔹 StringBuilder vs StringBuffer 차이점

클래스
특징
String
불변(immutable) 객체. 문자열 변경 시 새로운 객체 생성.
StringBuilder
가변(mutable) 객체. 문자열 변경이 많을 때 성능이 좋음.
StringBuffer
StringBuilder와 유사하지만 쓰레드 안전(Thread-safe)
🚀 결론:
  • 멀티스레드 환경이 아니면 StringBuilder 사용 (더 빠름!)
  • 멀티스레드 환경이면 StringBuffer 사용 (동기화 지원)

🔹 정리

  • StringBuilder문자열을 효율적으로 수정할 때 사용.
  • 주요 메서드:
    • append() → 문자열 추가
    • insert() → 특정 위치에 삽입
    • replace() → 특정 문자열 변경
    • delete() → 문자열 삭제
    • reverse() → 문자열 뒤집기
  • 멀티스레드 환경이 아니면 StringBuilder 사용이 더 좋다! 🚀
 

대소문자 변환

메서드
설명
예제
Character.isLowerCase(c)
문자가 소문자인지 확인
'a'true, 'A'false
Character.isUpperCase(c)
문자가 대문자인지 확인
'A'true, 'a'false
Character.toLowerCase(c)
대문자를 소문자로 변환
'A''a'
Character.toUpperCase(c)
소문자를 대문자로 변환
'a''A'
 
Share article

parangdajavous