inblog logo
|
parangdajavous
    Coding Test_Java

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

    김미숙's avatar
    김미숙
    Apr 07, 2025
    [Coding Test_Java] 4. 대소문자 바꿔서 출력하기
    Contents
    문제 설명제한사항입출력 예문제 풀이🔹 StringBuilder 주요 메서드 및 사용법🔹 StringBuilder vs StringBuffer 차이점🔹 정리

    문제 설명

    영어 알파벳으로 이루어진 문자열 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
    Contents
    문제 설명제한사항입출력 예문제 풀이🔹 StringBuilder 주요 메서드 및 사용법🔹 StringBuilder vs StringBuffer 차이점🔹 정리

    parangdajavous

    RSS·Powered by Inblog